动态docker-compose运行时环境变量

时间:2018-09-07 22:35:25

标签: docker docker-compose environment-variables containers

我有一个本地开发设置,我在其中建立隧道到远程数据库实例,并通过计算机上的端口将其公开。

我的机器还托管了一个我想连接到该远程数据库的docker容器。

为此,我无法转发localhost上的端口(这将意味着Docker容器内部有所不同),因此我将其转发到本地IP的地址。

ifconfig en0 | awk '$1 == "inet" {print $2}'输出10.0.0.5

ssh -N -L 10.0.0.5:9876:database-instance.website.com:9876 instance-to-tunnel-through.website.com

et

现在,在我的docker-compose-yml中,我可以这样做:

version: "3"

my-app
  ports:
    - 5000:5000 # expose app to host on port 5000
  build: ./my-app # point to my-app's Dockerfile
  environment:
    - HOST_IP=10.0.0.5

然后在应用程序内部,我可以引用HOST_IP。这行得通,但是这意味着我每次切换网络都必须更改docker-compose.yml,这很痛苦。

理想情况下,我想在ifconfig启动时向其提供当前输出。

我看过docker .env文件,但似乎只包含静态数据。 我在RUN

中查看了Dockerfile

0 个答案:

没有答案