【发布时间】:2015-07-07 16:36:33
【问题描述】:
我使用 Docker Compose 来启动我的容器。我有一个 RethinkDB 服务容器,它在以下环境变量中公开(以及其他)主机端口:APP_RETHINKDB_1_PORT_28015_TCP_ADDR。
但是,我的应用必须将此主机作为名为 RETHINKDB_HOST 的环境变量接收。
我的问题是:如何在启动容器时将给定的 env var 别名为所需的(最好以最 Dockerish 的方式)?我试过了:
env_file: .env
environment:
- RETHINKDB_HOST=$APP_RETHINKDB_1_PORT_28015_TCP_ADDR
但首先,它不起作用,其次,它看起来不是最好的方法。
【问题讨论】:
-
如果您的应用可以使用启动脚本,您可以在该脚本中进行分配。我的意思是您的应用程序的入口点可以是,例如 /start。 /start 完成您的任务,然后执行您的应用程序。这是一个很好的问题,我认为在 compose.yaml 中没有办法做到这一点。
-
我想过这个,但我真的不喜欢这种方法。
-
脚本可能是最好的方法。来自链接的环境是在其他环境变量之后设置的,因此您不能以这种方式引用链接。除非您想更改 RethinkDB 以使用 Compose 友好的环境变量名称,否则您的选项会受到限制。
-
如何使用一个使用
RETHINKDB_HOST=$APP_RETHINKDB_1_PORT_28015_TCP_ADDR的.env文件
标签: docker environment-variables docker-compose