Docker image error: "/bin/sh: 1: [python,: not found"

Docker image error: "/bin/sh: 1: [python,: not found"

我正在基于标准 Ubuntu 14.04 图像构建一个新的 Docker 图像。

这是我的Docker文件:

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 会按预期打开交互式提示。

为什么我不能在 Docker 文件中通过 CMD 调用 python

在 CMD 中使用 " 而不是 '(Documentation)

我已经通过更改

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

CMD python app.py

我有同样的错误。但就我而言,这是命令中的语法错误。
我少了一个逗号 ","
CMD ["python" "app.py"]
而不是
CMD ["python", "app.py"]

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

我有类似的问题,但在我的案例中 docker 运行 命令中没有任何 '" 字符。 但我找到了修复该问题的解决方案,也许将来会在类似情况下对您有所帮助:

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

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