Docker镜像错误:“/ bin / sh:1:[python,:not found”

时间:2015-09-22 05:32:36

标签: python django ubuntu docker dockerfile

我正在构建基于标准Ubuntu 14.04映像的新Docker镜像。

这是我的 Dockerfile

FROM ubuntu:14.04
RUN apt-get update -y
RUN apt-get install -y nginx git python-setuptools python-dev
RUN easy_install pip
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt # only 'django' for now
ENV projectname myproject
EXPOSE 80 8000
WORKDIR ${projectname}
CMD ['python', 'manage.py', 'runserver', '0.0.0.0:80']

当我尝试运行此图像时,出现此错误...

  

/ bin / sh:1:[python,:not found

但是如果我在运行图像时打开shell,则运行python会按预期打开交互式提示。

为什么我不能通过Dockerfile中的python调用CMD

4 个答案:

答案 0 :(得分:39)

在CMD中使用"代替'(Documentation)

答案 1 :(得分:6)

我已经通过更改

在我的Mac上解决了我的问题
CMD ["python", "app.py"]

CMD python app.py

答案 2 :(得分:0)

我有同样的错误。但就我而言,这是命令中的语法错误。 用CMD ["python" "app.py"]代替了CMD ["python", "app.py"]

在这种情况下,验证yaml文件格式可能会有所帮助。可以使用任何在线yaml validator

答案 3 :(得分:0)

我有类似的问题,但在我的情况下,我在docker run命令中没有任何start()'字符。 但我找到了解决该问题的解决方案,也许将来会在类似情况下为您提供帮助:

  1. 清除Dockerfile中所有不必要的空白字符
  2. 清除该Dockerfile中的所有缓存图像
  3. 构建并运行新映像

如果您不清除缓存的图像,则docker将使用缓存的图像以及一些疯狂的空白字符,这些字符被创建为与线程主题相同的错误消息。