Python3 и Docker файл многоступенчатой ​​сборки не найден - PullRequest
0 голосов
/ 19 февраля 2020

Я нуб к docker, и я пытаюсь создать многоступенчатый докер-файл для python3

FROM ubuntu:18.04 as base
RUN apt-get -qy update && apt-get install python3 -y
WORKDIR /pydocktest
COPY test.py .

FROM  ubuntu:18.04 AS release
WORKDIR /pytest
COPY --from=base /usr/local/bin/ /usr/local/bin/
COPY --from=base /pydocktest .
CMD ["./test.py"]

Затем

docker build -t test .
docker run test

Вывод

standard_init_linux.go:211: exec user process caused "no such file or directory"

но когда я запускаю apt -get install python3 в части release, она отлично работает? так зачем нужна многоступенчатость, если я собираюсь переустановить python извините, если я озвучу дамп

1 Ответ

0 голосов
/ 19 февраля 2020

Краткий ответ: многостадийность не требуется, если вы переустанавливаете Python в окончательном образе.

Длинный ответ: одна из причин использования многоступенчатой ​​системы заключается в том, что вам нужны специальные приложения и файлы при сборке приложения, но они не нужны во время выполнения. В вашем примере это не так.

Кроме того, вы можете использовать образ python3 вместо его установки самостоятельно. Это упростит ваш Dockerfile:

FROM python:3
COPY test.py .
CMD [ "python", "./test.py" ]

Если вы хотите узнать больше об обосновании многоступенчатых Dockerfiles, моя книга Learn Docker объясняет их, и, кстати, это книга написано для нубов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...