在docker-compose.yml中设置本地网络IP占位符

时间:2016-10-16 12:05:29

标签: docker docker-compose xdebug

我有一个docker-compose.yml文件,我正在为容器设置xdebug设置,例如主机,端口和远程模式。
虽然端口和远程模式不会改变,当我在工作或在家时,主机对我来说是不同的。
在工作中,我们拥有所有不同的本地网络IP地址,因此我们总是需要手动更改主机IP。
如果有更好的方法,请告诉我,但如果没有:

如何在docker-compose.yml内为本地网络ip添加占位符?
目前看起来像这样

worker:
    image: docker.io/company/project-dev
    ports:
    - "8080:80"
    environment:
      - XDEBUG_HOST=192.168.2.198
      - XDEBUG_PORT=9000
      - XDEBUG_REMOTE_MODE=req

我需要以某种方式设置这样的主机

- XDEBUG_HOST={local-ip}

但实现这一目标的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

您可以将值设置为变量:

worker:
    image: docker.io/company/project-dev
    ports:
    - "8080:80"
    environment:
      - XDEBUG_HOST=${local_ip}
      - XDEBUG_PORT=9000
      - XDEBUG_REMOTE_MODE=req

然后在调用docker-compose up时设置一个环境变量:

local_ip=123.123.123.123 docker-compose up

答案 1 :(得分:0)

回答得很晚,但是出于这种需要,我使用了docker-compose.yml主文件中的overrides

对于您而言,您只需覆盖XDEBUG_HOST文件中的docker-compose.override.yml

# docker-compose.override.yml
worker:
    environment:
      - XDEBUG_HOST=192.168.2.198

docker-compose.yml进行版本控制,并且docker-compose.override.yml严格保持本地状态,而不进行版本控制。

这样一来,即使缺少docker-compose.override.yml,您仍然可以正常使用配置,您团队中的任何人都可以根据其本地环境创建该文件。