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

时间:2015-12-28 15:03:10

标签: docker docker-compose

使用Docker Compose将主服务和从服务链接在一起。因此,Compose通过环境变量自动注入从属容器,该环境变量包含连接到另一个主容器所需的各种端口和IP。

服务通过命令行参数接受主服务器的IP /端口,因此我在 public ParseObject getFriend(String name) { ParseQuery<ParseUser> query = ParseUser.getQuery(); query.whereEqualTo("Name", name); try { ParseObject user = query.getFirst(); return user; } catch (com.parse.ParseException e) { e.printStackTrace(); return null; } 中设置了它。

  [ x for x in D if x[0] == hash(key) ]

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

启动群集时,您会看到警告: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但产生了异常行为,其中服务根本看不到任何变量。 (有关信息,我实际使用的服务是RethinkDB)。

1 个答案:

答案 0 :(得分:2)

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

因此,请将命令更改为:

myservice --master master:29015