我有一个作为 .bin 的应用程序包,它在 rhel7-init 基本映像上运行。以下是带有父镜像和子镜像的 Dockerfile。
FROM registry.access.redhat.com/rhel7-init:7.3 as base
COPY yum.repos.d/ /etc/yum.repos.d/
RUN yum -y install sudo systemd
RUN yum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-redhat93-9.4-3.noarch.rpm -y && \
yum install -y postgresql94
RUN export key=value && \
installer.bin &> /root/install.log
FROM registry.access.redhat.com/rhel7-init:7.3
COPY --from=base /opt/app/ /opt/app
COPY start_app /root/
RUN chmod +x /root/start_app
ENTRYPOINT [ "/root/start_app" ]
它有一个以 ENTRYPOINT 形式给出的启动脚本,它在启动容器时在运行时配置一些东西。我将安装的目录位置从父图像复制到新图像。
现在,当我启动容器时,它会显示对安装在父映像中的 sudo 包的依赖关系。
如何在不增加太多大小的情况下将已安装的父基础映像的包转移到我的新基础映像?
我还可以继承父基础映像中使用的安装程序中存在的任何环境变量吗?