在Mac上运行Docker,构建工作,运行错误::/bin/sh:1:[:missing]

Dum*_*mbo 5 macos bash docker

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

/bin/sh: 1: [: missing ]
Run Code Online (Sandbox Code Playgroud)

我使用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" 
Run Code Online (Sandbox Code Playgroud)

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

Cha*_*ffy 7

CMD [ "python", "./quandlData.py"
Run Code Online (Sandbox Code Playgroud)

被解析为shell命令,而不是数组 - 并且[命令(当以这种方式调用时,而不是通过其替代名称test)需要其最后一个参数].

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


因此,您可以执行以下两项操作之一:

# BETTER: Fix your JSON array
CMD [ "python", "./quandlData.py" ]
Run Code Online (Sandbox Code Playgroud)

...要么...

# WORSE: Pass a valid shell command
CMD python ./quandlData.py
Run Code Online (Sandbox Code Playgroud)