【问题标题】:Set local network IP placeholder in docker-compose.yml在 docker-compose.yml 中设置本地网络 IP 占位符
【发布时间】:2016-10-16 12:05:28
【问题描述】:

我有一个 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}

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

【问题讨论】:

    标签: docker docker-compose xdebug


    【解决方案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时设置环境变量:

    local_ip=123.123.123.123 docker-compose up
    

    【讨论】:

    【解决方案2】:

    回答很晚,但出于这种需要,我使用主文件docker-compose.ymloverrides

    在您的情况下,您只需在 docker-compose.override.yml 文件中覆盖 XDEBUG_HOST

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

    docker-compose.yml 被版本化,docker-compose.override.yml 严格保持本地化而不是版本化。

    这样,即使docker-compose.override.yml 丢失,您的配置仍然可以正常工作,并且您团队中的任何人都可以根据他们的本地环境创建该文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-28
      • 2018-07-06
      • 2017-12-30
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      相关资源
      最近更新 更多