22
Июл
2021

Скопировать установленные 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.

Однако, запуская образ, получаю ошибки импорта. Видимо, необходимо активировать виртуальное окружение?

Источник: https://ru.stackoverflow.com/questions/1307744/%D0%A1%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-poetry-%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D1%8B-%D0%B8%D0%B7-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B0-slim-%D0%B2-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7-alpine-%D0%B8-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82

Тебе может это понравится...

Добавить комментарий