docker:在docker start

时间:2016-07-06 11:04:42

标签: docker dockerfile

我希望拥有某种"开发码头图像"每次重新启动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有一些错误的看法,有人可以启发我吗?

1 个答案:

答案 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

我发现这更容易,原因如下:

  1. 这些命令不可避免地随着更多的工作而增加
  2. 这使得很多更容易以交互方式运行容器,因为您可以使用docker run mycontainer /bin/bash运行它们,然后手动执行您的shell脚本。这有助于调试