Я знаю, что этот ответ старый, но надеюсь, что мой ответ поможет.
В начале вы создаете пакеты --virtual и устанавливаете их.Это отлично подходит для вашего контейнера, потому что он остается маленьким и чистым, но проблема здесь
&& apk del .build-deps
С помощью этой команды вы удаляете все виртуальные пакеты.Если gettext-dev
был здесь
RUN apk add --no-cache --virtual .build-deps \
ca-certificates gcc postgresql-dev linux-headers musl-dev \
libffi-dev jpeg-dev zlib-dev gettext-dev\
Он также будет удален.Поэтому, если вы хотите, чтобы ваш пакет оставался внутри контейнера, вам необходимо добавить его после установки основных пакетов.
Например
FROM python:3.6-alpine
ENV PYTHONUNBUFFERED 1
# Creating working directory
RUN mkdir /code
WORKDIR /code
# Copying requirements
COPY ./myproject/ .
RUN apk add --no-cache --virtual .build-deps \
ca-certificates gcc postgresql-dev linux-headers musl-dev \
libffi-dev jpeg-dev zlib-dev \
&& pip install -r requirements.txt \
&& find /usr/local \
\( -type d -a -name test -o -name tests \) \
-o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \
-exec rm -rf '{}' + \
&& runDeps="$( \
scanelf --needed --nobanner --recursive /usr/local \
| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
| sort -u \
| xargs -r apk info --installed \
| sort -u \
)" \
&& apk add --virtual .rundeps $runDeps \
&& apk del .build-deps
RUN apk add gettext-dev
RUN python manage.py compilemessages
Или вы можете удалить эту строку
&& apk del .build-deps
но это означает, что ваш контейнер будет намного больше.