簡體   English   中英

運行 docker 容器時出錯:啟動容器進程導致“exec:\”python\“:在 $PATH 中找不到可執行文件”:未知

[英]Error running docker container: starting container process caused "exec: \"python\": executable file not found in $PATH": unknown

我正在嘗試對一個簡單的 Python-Flask 應用程序進行 docker 化,但在運行我的容器時出現錯誤。

docker:來自守護程序的錯誤響應:OCI 運行時創建失敗:container_linux.go:344:啟動容器進程導致“exec:\”python\“:在 $PATH 中找不到可執行文件”:未知。

本地主機上的工作目錄:

/home/ubuntu/flask_web
- app.py
- Dockerfile
- requirements.txt

應用程序.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')

Dockerfile

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 web 應該在端口 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 或其他命令來安裝這些庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM