为什么我的Dockerfile CMD不起作用?

时间:2016-11-06 21:55:59

标签: linux bash docker dockerfile

所以在我的Dockerfile的末尾我有这个:

WORKDIR /home
CMD django-admin startproject whattt
CMD /bin/bash

当我创建图像然后运行容器时,一切都按预期工作,没有错误,Docker日志中没有错误。然而,仍然有一些我似乎无法弄清楚的问题。

第一个也是最重要的问题是CMD django-admin startproject实际上并没有创建任何项目。在我运行容器后,我可以手动运行django-admin startproject,它按预期工作。当我从Dockerfile中将其作为CMD发布时,则不会创建任何项目。

第二个问题是在django-admin行之后,我用/ bin / bash放了第二个CMD所以当我运行容器时它打开一个shell(所以我可以进去检查我的django项目是否已创建)。这会产生问题或与之前的django-admin行冲突吗?如果我删除这一行,那么当我运行容器时,我无法打开shell并检查我的django项目是否存在?

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:4)

“Dockerfile中只能有一条CMD指令。如果您列出多个CMD,那么只有最后一个CMD才会生效。“通过Dockerfile reference。所以你的第一个CMD不会生效。

如果要执行容器的bash,请尝试<a-scene embedded>...</a-scene> a-scene { width: 50%; } 命令,the document提供示例命令,以便您可以关注。