@albertalexandrov

Скопировать установленные poetry пакеты из образа slim в образ alpine и запустить?

Намереваюсь сбилдить библиотеки в образе slim и потом положить в alpine. Для этого написан Dockerfile:

FROM python:3.8.7-slim AS builder

ENV POETRY_VIRTUALENVS_CREATE=false
WORKDIR /app
RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get install -y libldap2-dev  # для python-ldap
RUN apt-get install -y libsasl2-dev  # для python-ldap
COPY poetry.lock pyproject.toml ./
RUN python -m pip install --upgrade pip && pip install poetry && poetry install --no-dev

FROM python:3.8.7-alpine3.13 AS runtime
COPY --from=builder /root/* /root/
WORKDIR /app
COPY pythonapline .
#RUN python manage.py makemigrations && python manage.py migrate
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]


poetry по умолчанию создает виртуальное окружение в директории ~/.cache/pypoetry/virtualenvs (Linux). Чтобы оно попало в образ runtime, содержимое папки /root из образа builder копируется в папку /root образа runtime.

Однако, запуская образ, получаю ошибки импорта. Видимо, необходимо активировать виртуальное окружение?
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dmtrrr
Backend developer
Почему бы не строить сразу на основе alpine?
Виртуальное окружение никакой особой магии не делает, прочитайте про https://docs.python.org/3/using/cmdline.html#envva...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы