【问题标题】:Running Docker on Mac, build works, run errors: : /bin/sh: 1: [: missing ]在 Mac 上运行 Docker,构建工作,运行错误: : /bin/sh: 1: [: missing ]
【发布时间】:2017-06-25 09:04:52
【问题描述】:

在 Mac 上运行 Docker,我可以构建我的镜像,但是在运行时,我收到以下错误:

/bin/sh: 1: [: missing ]

我在本地目录中创建图像 一个 dockerfile、requirements.txt 和一个 python 脚本文件。 - 3个文件- 使用 docker build

Dockerfile:

FROM python
COPY "requirements.txt"
RUN pip install -r requirements.txt
COPY "quandlData.py"
CMD [ "python", "./quandlData.py" 

-从 quandl API 获取一些数据并从正在运行的 redis 服务器写入-获取的简单脚本。要运行,我只使用docker run image_name

【问题讨论】:

  • 您的容器是否使用了一些 ENTRYPOINT 或 RUN 命令?您是否尝试过不同的基础 FROM 映像?
  • 我使用 dockerfile、requirements.txt 和 python 脚本文件在本地目录中创建图像。 - 3 个文件 - 使用 docker build Dockerfile: #!/bin/sh FROM python COPY "requirements.txt" / RUN pip install -r requirements.txt COPY "quandlData.py" / CMD [ "python", "./quandlData. py" 简单脚本,它从 quandl API 获取一些数据并从正在运行的 redis 服务器写入-获取。要运行,我只使用 docker run image_name
  • 谢谢查尔斯·达菲。就是这样。

标签: bash macos docker


【解决方案1】:
CMD [ "python", "./quandlData.py"

被解析为一个 shell 命令,而不是一个数组——[ 命令(当以这种方式调用时,而不是通过它的备用名称test)要求它的最后一个参数是]。

但是,在这种情况下,添加尾随 ] 将导致您的 CMD 解析为描述要传递给 python 的参数的数组,而不是 [ 命令 - 它应该是。


因此,您可以做以下两件事之一:

# BETTER: Fix your JSON array
CMD [ "python", "./quandlData.py" ]

...或...

# WORSE: Pass a valid shell command
CMD python ./quandlData.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-28
    • 2021-10-23
    • 2023-02-22
    • 2020-08-14
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    相关资源
    最近更新 更多