gpt4 book ai didi

docker - 如何使用父镜像中的Linux依赖项和环境变量创建Docker多阶段构建?

转载 作者:行者123 更新时间:2023-12-02 18:29:19 25 4
gpt4 key购买 nike

我有一个.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软件包的依赖关系。

如何在不增加太大大小的情况下将已安装的父基础镜像的软件包转发到新基础镜像?

我是否还可以保留父基础镜像中使用的安装程序中存在的所有env变量?

最佳答案

您可以通过写入文件并将其复制到下一个镜像中来转发父镜像中的环境变量等。然后在您的入口点以某种方式读取它并导出变量等。但是我会说这有点奇怪。

但是在您的情况下,似乎对变量和包有相当多的依赖性,因此也许根本不进行多阶段操作就更容易了吗?

关于docker - 如何使用父镜像中的Linux依赖项和环境变量创建Docker多阶段构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51918602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com