【问题标题】:Why does my Dockerfile CMD not work?为什么我的 Dockerfile CMD 不起作用?
【发布时间】:2016-11-06 21:55:59
【问题描述】:

所以在我的 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 项目是否存在?

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

【问题讨论】:

    标签: linux bash docker dockerfile


    【解决方案1】:

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

    如果您想执行容器的 bash,请尝试使用 docker exec 命令,the document 提供示例命令以便您进行操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-29
      • 2021-03-05
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多