我希望拥有某种"开发码头图像"每次重新启动Docker Container时都会执行npm install
(因为我不想构建,每天从我的本地机器推送新的dev映像到我们的Docker服务器)。
所以我以为我能做到......在我的Dockerfile中这样:
CMD npm install git+ssh://git@mycompany.de/my/project.git#develop && npm start
可悲的是,这不起作用。容器在docker start
之后立即停止,我不知道为什么,因为这有效:
RUN npm install git+ssh://git@mycompany.de/my/project.git#develop
CMD npm start
(仅用于测试,当然不是我想要的)。但也许我对CMD
有一些错误的看法,有人可以启发我吗?
答案 0 :(得分:3)
将CMD
指向shell脚本。
CMD ["/my/path/to/entrypoint.sh"]
该脚本是:
#!/bin/bash
npm install git+ssh://git@mycompany.de/my/project.git#develop
npm start
# whatever else
我发现这更容易,原因如下:
docker run mycontainer /bin/bash
运行它们,然后手动执行您的shell脚本。这有助于调试