我有一个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}
但实现这一目标的最佳方式是什么?
答案 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
,您仍然可以正常使用配置,您团队中的任何人都可以根据其本地环境创建该文件。