我正在构建基于标准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
?
答案 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()
或'
字符。
但我找到了解决该问题的解决方案,也许将来会在类似情况下为您提供帮助:
如果您不清除缓存的图像,则docker将使用缓存的图像以及一些疯狂的空白字符,这些字符被创建为与线程主题相同的错误消息。