gpt4 book ai didi

docker - 如何将Dockerfile中的ENV命令集替换为其他文件,以供重用?

转载 作者:行者123 更新时间:2023-12-02 21:31:00 33 4
gpt4 key购买 nike

我有两个带有环境变量列表的Dockerfile(也许会有更多),两个文件都相同。比方说:

ENV VAR1="value1"
ENV VAR2="value2"
ENV VAR3="value3"
我可以以某种方式将此设置移动到一个文件,该文件可以在需要的所有Dockerfile中使用吗?
我想删除重复项,并在设置这些变量的地方放一个普通的地方。

最佳答案

您可以将它们拆分为自定义基本镜像。该图像看起来像

FROM ubuntu:18.04 # or whatever else you're using
ENV VAR1="value1"
ENV VAR2="value2"
ENV VAR3="value3"
# and that's all
在大多数情况下,您将必须手动构建它
docker build -t my/env-base -f Dockerfile.env .
然后您可以在下游Dockerfiles中引用它
FROM my/env-base
# the rest of the Dockerfile commands as normal
像Docker Compose这样的工具并不会真正意识到这种图像分层。没有一种好的方法可以列出需要作为其他事物的依赖项而构建的基本镜像,但是不应单独运行容器。如果您确实更改了这些值,则必须手动重建基础镜像,然后重建应用程序镜像。
您还应该考虑是否需要所有这些环境变量。在其他SO问题中,我看到了用于文件系统路径的变量(可以在独立的Docker镜像中固定),用户名(实际上不是Docker概念),凭据(远离镜像,将它们撤回很容易) ,版本和网址。您可能可以不使用固定值(使用 /app而不是 $INSTALL_PATH),或者在应用程序代码中使用合理的默认值。

关于docker - 如何将Dockerfile中的ENV命令集替换为其他文件,以供重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64481925/

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