所以我有一个像这样的docker文件:
FROM frolvlad/alpine-python2
MAINTAINER *REDACTED*
COPY . .
RUN pip install -r requirements.txt
RUN python misc_scripts/gen_hosts.py
RUN python misc_scripts/strip_delims.py
RUN python runparse.py -spc -spi
ENTRYPOINT ["python", "rebuild.py"]
并在python中使用Docker API,我试图像这样运行容器
logs = client.containers.run(image_id, name=str(_uuid), entrypoint=['-m ME3400', '-mi NONE'])
但是我遇到以下错误
500 Server Error: Internal Server Error ("OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"-m ME3400\": executable file not found in $PATH": unknown")
我认为我做错了,有人知道为什么/为什么不起作用?
答案 0 :(得分:1)
正如您在问题标题中所说的,它应该是您期望的command
参数。遵循source code on github(从第484行开始),它应该更具体。
按如下所示更改代码:
logs = client.containers.run(image_id, name=str(_uuid), command=['-m ME3400', '-mi NONE'])
始终请注意,如果CMD存在,它将被视为ENTRYPOINT的args。但是,如果您指定另一个ENTRYPOINT(在您的情况下为['-m ME3400','-mi NONE']),则原始ENTRYPOINT([“ python”,“ rebuild.py”])将被覆盖。