首页 文章

Docker子映像不会继承基本映像中安装的包

提问于
浏览
1

我需要具有以下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 构建的包,其中一个需要查找 libpq-dev 包中包含的 pg_config 二进制文件 . 问题是,即使它从基础图像继承并开始正常构建,它也找不到它们 . (虽然如果我将它们安装在子图像中,它一切正常 - 但这不是我想要的 . )

知道我做错了什么吗?非常感谢 .

1 回答

  • 1

    你有没有 Build 没有该软件的基础图像?然后,它可能是泊坞窗图像的缓存问题,即您的子图像基于基本图像的旧缓存版本 .

    验证以下哈希匹配:

    • 构建基础图像作为最后一行打印:

    Successfully built <hash>

    • 在开头构建您的子图像:

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

    <hash> 应该是相同的 .

相关问题