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 运行 命令中没有任何 '
或 "
字符。
但我找到了修复该问题的解决方案,也许将来会在类似情况下对您有所帮助:
- 清除 Dockerfile 中所有不必要的空白字符
- 从这个 Dockerfile 中清除所有缓存的图像
- 构建并 运行 新图像
如果您不清除缓存的图像,docker 将使用带有一些疯狂的空白字符的缓存图像,创建的错误消息与线程的主题相同。
我正在基于标准 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 运行 命令中没有任何 '
或 "
字符。
但我找到了修复该问题的解决方案,也许将来会在类似情况下对您有所帮助:
- 清除 Dockerfile 中所有不必要的空白字符
- 从这个 Dockerfile 中清除所有缓存的图像
- 构建并 运行 新图像
如果您不清除缓存的图像,docker 将使用带有一些疯狂的空白字符的缓存图像,创建的错误消息与线程的主题相同。