Ошибка запуска Docker-контейнера: запуск процесса контейнера вызвал "exec: \" python \ ": исполняемый файл не найден в $ PATH": неизвестно - PullRequest
2 голосов
/ 25 марта 2019

Я пытаюсь докернизировать простое приложение Python-Flask, но я получаю ошибку при запуске моего контейнера.

docker: Ошибка ответа от демона: Ошибка создания среды выполнения OCI: container_linux.go: 344: запуск процесса контейнера вызвал "exec: \" python \ ": исполняемый файл не найден в $ PATH": неизвестно.

Workdir на локальном хосте:

/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')

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.

1 Ответ

3 голосов
/ 25 марта 2019

В образе докера, построенном с помощью кода выше, нет /usr/bin/python. Но есть /usr/bin/python3. Таким образом, вы можете использовать python3 напрямую как ENTRYPOINT или создать символическую ссылку.

...