Уменьшите размер изображения Docker: Python3 и psycopg2

Я бы пошел со вторым подходом, хотя не знаю, почему вы не можете передать его в master / featured branch. Можно также сделать вишневый сбор.

1
задан caliph 13 July 2018 в 09:30
поделиться

1 ответ

Рассмотрите возможность использования многоступенчатой ​​сборки . Используйте первый этап для создания всех необходимых зависимостей и второго этапа для создания окончательного изображения Docker. Просто скопируйте сгенерированные сайты-пакеты (и другие артефакты, если необходимо) со стадии сборки на второй.

Итак, ваш файл Docker может выглядеть так (обратите внимание на два оператора FROM):

# Build stage:
FROM python:3.6-alpine as build
COPY . /app
WORKDIR /app

RUN apk add --virtual build-deps gcc python-dev musl-dev && \
    apk add postgresql-dev

RUN pip install pipenv
RUN pipenv install --system --deploy

# "Default" stage:
FROM python:3.6-alpine

# Copy generated site-packages from former stage:
COPY --from=build /usr/local/lib/python3.6/site-packages/ /usr/local/lib/python3.6/site-packages/

COPY . /app
WORKDIR /app

EXPOSE 5005

ENV FLASK_APP=app/__init__.py
ENV FLASK_RUN_PORT=5005

CMD flask run --host=0.0.0.0
2
ответ дан Joe Eig 17 August 2018 в 13:16
поделиться
Другие вопросы по тегам:

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