gpt4 book ai didi

docker - Docker-与引用的卷容器共享环境变量

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

是否有可能让Docker在运行时共享与--volumes-from链接的容器的环境变量,就像对与--link链接的容器进行共享的方式一样?

我在应用程序中使用仅数据容器存储持久性数据,我想在应用程序容器的入口点脚本中检查是否在运行时引用了数据容器,如果没有,则将其取消。
我的想法是检查是否设置了数据容器的环境变量(包含暴露卷的路径),我还计划在脚本中的某些点使用它的值(例如,将应用程序的数据目录设置为其配置文件)。

有什么方法可以做到这一点,如果没有,那么做我描述的事情的下一个最佳方法是什么?

我发现docker inspect返回volumes-from下的所有HostConfig.VolumesFrom容器。这不能完全解决共享问题,因为我想检查一个固定值(环境变量的名称)而不是容器名称,并且还需要该变量的值,但这只是一个开始。

最佳答案

Is there any way to achieve this and if not what would be the next best way to do the things I described?



您不能使用 --volumes-from将环境变量从一个容器公开到另一个容器。

您的应用程序不一定要关心是否在运行时引用了数据容器。您应该在Dockerfile中声明 VOLUME,以便(a)应用程序将使用 VOLUME指令产生的匿名卷初始化新的数据存储,或者(b)使用通过 --volumes-from-v呈现的卷在 docker run命令行上。

您可以在启动应用程序容器时( -e DATA_PATH=/path/to/my/data)简单地将数据卷的位置作为环境变量提供。

如果您关心数据量是否已通过某种方式“初始化”,则可以检查 DATA_PATH位置以查找某种特定标记文件( if ! [ -f "$DATA_PATH/flagfile" ]; then ...)。

关于docker - Docker-与引用的卷容器共享环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469704/

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