gpt4 book ai didi

Docker Compose - 使用容器环境变量的命令

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

使用 Docker Compose 将主服务和从服务链接在一起。因此,Compose 会自动向从属容器注入(inject)包含连接到其他主容器所需的各种端口和 IP 的环境变量。

该服务通过命令行参数接受主站的 IP/端口,因此我在我的命令中进行了设置。

master:
command: myservice
ports:
- '29015'
slave:
command: myservice --master ${MASTER_PORT_29015_TCP_ADDR}:${MASTER_PORT_29015_TCP_PORT}
links:
- master:master

问题在于,像 MASTER_PORT_29015_TCP_PORT 这样的环境变量是在运行 compose 命令时评估的,而不是在实际设置它们的容器本身内评估的。

启动集群时 - 您会看到警告:警告:未设置 MASTER_PORT_29015_TCP_ADDR 变量。默认为空白字符串。

我尝试设置entrypoint: ["/bin/sh", "-c"],但产生了异常行为,服务根本看不到任何变量。 (仅供引用,我实际使用的服务是 RethinkDB)。

最佳答案

As stated in the documentation ,现在不鼓励链接环境变量,您应该只编写 master 而不是 $MASTER_PORT_29015_TCP_ADDR。此外,当您知道它的值将是 29015 时,编写 $MASTER_PORT_29015_TCP_PORT 似乎没有任何意义。

因此,将命令更改为:

myservice --master master:29015

关于Docker Compose - 使用容器环境变量的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34495869/

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