具体内容如下:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: "python": executable file not found in $PATH": unknown.
Dockfile内容为:
FROM nvidia/cuda:10.0-cudnn7-runtime-ubuntu16.04
RUN apt-get update && apt-get install -y --no-install-recommends
build-essential
cmake
curl
ca-certificates
libjpeg-dev
libpng-dev &&
rm -rf /var/lib/apt/lists/*
COPY . /workspace
WORKDIR /workspace
CMD ["python", "run.py", "/input_path", "/output_path"]
```
run.py 没有加入到容器里
在15行之前加入 ADD /data/run.py run.py
应该是docker镜像没有安装python环境。
CMD ["python", "run.py", "/input_path", "/output_path"]
是exec风格的语法,不会通过shell执行,可能会导致读不到PATH
中的环境变量,可以改成下面两种写法试试
# entrypoint 才是官方推荐的启动入口
ENTRYPOINT ["python", "run.py", "/input_path", "/output_path"]
# 必须用cmd则需要这样写
CMD ["/usr/bin/python", "run.py", "/input_path", "/output_path"]
如果上述方案没解决问题,看这里
看错误是FROM
的基础镜像里没有包含python环境,可通过以下方法(任选一个)解决:
RUN
里加上安装python的命令nvidia/cuda:10.0-cudnn7-runtime-ubuntu16.04
镜像启动一个容器,通过docker exec
进入容器里安装你需要的基础环境,然后把处理好的容器打包成新镜像,用新镜像运行run.py
没有安装对应好的依赖 安装一下