docker:npm在docker start上安装
我想有一种“开发泊坞窗形象”,其中每次我重新启动我的Docker容器时执行npm install
(因为我不想每天从我的本地机器上build立,推拉新的开发图像到我们的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
(只是为了testing,这当然不是我想要的)。 但是也许我对CMD
有一些错误的认识,有人可以启发我呢?
使您的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脚本。 这有助于debugging