错误 运行 docker 容器:启动容器进程导致 "exec: \"python\": 在 $PATH 中找不到可执行文件": 未知
Error running docker container: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown
我正在尝试 docker 化一个简单的 Python-Flask 应用程序,但在 运行 安装我的容器时出现错误。
docker:来自守护程序的错误响应:OCI 运行时间创建失败:container_linux.go:344:启动容器进程导致 "exec: \"python\" : 在 $PATH 中找不到可执行文件": 未知。
本地主机上的工作目录:
/home/ubuntu/flask_web
- app.py
- Dockerfile
- requirements.txt
app.py
#flask_web/app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hey, we have Flask in a Docker container'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
Docker 文件
FROM ubuntu:16.04
MAINTAINER xyz "xyz@gmail.com"
RUN apt-get update \
&& apt-get install -y software-properties-common vim \
&& add-apt-repository ppa:jonathonf/python-3.6 \
&& apt-get update -y \
&& apt-get install -y build-essential python3.6 python3.6-dev python3-pip python3.6-venv \
&& pip3 install --upgrade pip
# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip install -r requirements.txt
COPY . /app
ENTRYPOINT [ "python" ]
CMD [ "app.py" ]
命令:
docker build -t flask-test:latest .
docker run -p 5000:5000 flask-test
预期:Flask 网络应该 运行 在端口 5000
上
实际结果:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown.
上面代码构建的 docker 图像中没有 /usr/bin/python
。但是有/usr/bin/python3
。所以你可以直接使用 python3
作为你的 ENTRYPOINT
或者创建一个符号链接。
我遇到了同样的问题,只是它喊的是 344 以外的其他数字
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown.
docker 文件是
FROM ubuntu:20.04
RUN apt-get update -y
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT [ "python" ]
CMD [ "app.py" ]
我改线了
ENTRYPOINT [ "python" ]
至 ENTRYPOINT [ "python3" ]
现在它工作正常。
这样做的原因是上面我使用了 Python3 所以没有候选 Python 而有 Python3.
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
我在构建 flask 应用 docker 图像时遇到了类似的错误。我通过安装修复它:
RUN apk add --no-cache gcc musl-dev linux-headers
如果您使用的是 alpine,请使用上面的命令。否则使用 apt-get 或其他命令来安装这些库
我正在尝试 docker 化一个简单的 Python-Flask 应用程序,但在 运行 安装我的容器时出现错误。
docker:来自守护程序的错误响应:OCI 运行时间创建失败:container_linux.go:344:启动容器进程导致 "exec: \"python\" : 在 $PATH 中找不到可执行文件": 未知。
本地主机上的工作目录:
/home/ubuntu/flask_web
- app.py
- Dockerfile
- requirements.txt
app.py
#flask_web/app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hey, we have Flask in a Docker container'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
Docker 文件
FROM ubuntu:16.04
MAINTAINER xyz "xyz@gmail.com"
RUN apt-get update \
&& apt-get install -y software-properties-common vim \
&& add-apt-repository ppa:jonathonf/python-3.6 \
&& apt-get update -y \
&& apt-get install -y build-essential python3.6 python3.6-dev python3-pip python3.6-venv \
&& pip3 install --upgrade pip
# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip install -r requirements.txt
COPY . /app
ENTRYPOINT [ "python" ]
CMD [ "app.py" ]
命令:
docker build -t flask-test:latest .
docker run -p 5000:5000 flask-test
预期:Flask 网络应该 运行 在端口 5000
上实际结果:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown.
上面代码构建的 docker 图像中没有 /usr/bin/python
。但是有/usr/bin/python3
。所以你可以直接使用 python3
作为你的 ENTRYPOINT
或者创建一个符号链接。
我遇到了同样的问题,只是它喊的是 344 以外的其他数字
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown.
docker 文件是
FROM ubuntu:20.04
RUN apt-get update -y
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -r requirements.txt
COPY . /app
ENTRYPOINT [ "python" ]
CMD [ "app.py" ]
我改线了
ENTRYPOINT [ "python" ]
至 ENTRYPOINT [ "python3" ]
现在它工作正常。
这样做的原因是上面我使用了 Python3 所以没有候选 Python 而有 Python3.
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
我在构建 flask 应用 docker 图像时遇到了类似的错误。我通过安装修复它:
RUN apk add --no-cache gcc musl-dev linux-headers
如果您使用的是 alpine,请使用上面的命令。否则使用 apt-get 或其他命令来安装这些库