所以在我的 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 项目是否在那里?
任何帮助将不胜感激,谢谢。
“一个 Dockerfile 中只能有一条 CMD 指令。如果您列出多个 CMD,则只有最后一个 CMD 才会生效。”通过Dockerfile 参考 https://docs.docker.com/engine/reference/builder/#cmd。所以你的第一个CMD不会生效。
如果你想执行容器的 bash,请尝试docker exec
命令,以及该文件 https://docs.docker.com/engine/reference/commandline/exec/提供示例命令,以便您可以遵循。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)