gpt4 book ai didi

docker - 是否可以通过链接两个 docker 容器来自定义环境变量?

转载 作者:行者123 更新时间:2023-12-03 11:32:49 26 4
gpt4 key购买 nike

我为我的数据库服务器和 Web 应用程序创建了一个 docker 镜像。使用文档,我可以使用环境变量在两个容器之间进行链接,如下所示:
value="jdbc:postgresql://${DB_PORT_5432_TCP_ADDR}:${DB_PORT_5432_TCP_PORT}/db_name"
它现在工作正常,但环境变量更通用并且不包含静态端口号会更好。就像是:
value="jdbc:postgresql://${DB_URL}:${DB_PORT}/db_name"
无论如何,环境变量之间有联系吗?例如通过在 dockerfile ENV DB_URL=$DB_PORT_5432_TCP_ADDR 中使用 ENV 命令或者通过运行图像 docker run ... -e DB_URL=$DB_PORT_5432_TCP_ADDR docker_image 使用参数 --env ?

最佳答案

如果不将此类功能构建到您的 docker 启动 shell 脚本或其他编排机制中,则目前无法像您在此处描述的那样创建环境变量。您确实提到了一些解决方法。但是,问题至少与使用 -e DB_URL=... 有关。在您的 docker run命令是您的 $DB_PORT_5432_TCP_ADDR环境变量在运行时未知,因此在运行时您将无法设置此值。通常,这是您的编排层用于服务发现和在容器之间传递此类数据的用途。至少有一种解决方法 mentioned here on SO这涉及构建一个特殊的 shell 脚本,并将其放入 CMDENTRYPOINT将环境变量传递给容器的指令。

关于docker - 是否可以通过链接两个 docker 容器来自定义环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194458/

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