Дочерний образ Docker не наследует пакеты, установленные в базовом образе - PullRequest
0 голосов
/ 10 декабря 2018

Мне нужна иерархия следующих образов Docker:

Базовое изображение:

FROM python:3.5-slim-stretch
RUN apt install -y python3-enchant enchant libpq-dev gcc && apt clean

И дочернее изображение, которое наследуется от "базового" аналогичным образом:

FROM myprivaterepo:30999/base-image
ENV PATH /usr/lib/postgresql/9.5/bin:$PATH
RUN pip3 install -r requirements.txt

Requirements.txt содержит пакеты, предназначенные для сборки с gcc, и один из них должен найти двоичный файл pg_config, включенный в пакет libpq-dev.Проблема в том, что он не может их найти, даже если он наследует и начинает нормально строить из базового образа.(хотя, если я установлю их в дочернем образе, все будет работать - но это не то, что я хочу.)

Есть идеи, что я делаю неправильно?Большое спасибо.

1 Ответ

0 голосов
/ 10 декабря 2018

Вы когда-нибудь создавали базовый образ без этого программного обеспечения?Тогда это может быть проблема с кэшированием изображений докера, т. Е. Ваше дочернее изображение основано на старой кэшированной версии базового образа.

Убедитесь, что следующие хэши совпадают:

  • Построение отпечатков вашего базового изображения в последней строке:

Successfully built <hash>

  • Построение отпечатков вашего дочернего изображения в начале:

Step 1/x : FROM myprivaterepo:30999/base-image ---> <hash>

<hash> должен быть идентичным.

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