【问题标题】:Docker compose: using relative service address in environmentDocker compose:在环境中使用相对服务地址
【发布时间】:2017-03-07 19:24:38
【问题描述】:

例如,我在docker-compose中定义了两个服务

  backend:
    env_file:
      - .env.backend
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8686:8686"
  frontend:
    env_file:
    - .env.front_end
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:3000"

在前端应用程序中,我使用此端点定义了环境:

BACKEND_ENDPOINT=http://www.backend.com/api/v1/backend/

这里我不知道如何解决的问题是:如何将上面的端点转换为基于后端服务的相对端点。例如,如果您仅在 localhost 下运行后端,则 url 应为:localhost:8686/api/v1/backend。所以上面 docker-compose 文件中后端的 url 应该是:[backend_address]:8686/api/v1/backend。那么如何在这里自动映射地址和端口。

谢谢

【问题讨论】:

    标签: docker-compose dockerfile


    【解决方案1】:

    使用docker-compose,所有服务始终可以通过它们的名称来解析。

    在您的示例中,您应该将 depends_on 从前端添加到后端,并简单地使用名称 backend 来寻址后端服务器。

    frontend:
      depends_on:
        - 'backend'
    

    前端应该能够解析backend:8086的后端。请注意,名称解析不需要 depends_on,但 需要确保在创建 frontend 容器时端口处于打开状态。

    【讨论】:

    • 所以我的端点将是:backend:8086/api/v1/backend ?如果这是真的,那么后端表示“后端”时的 url 是什么。谢谢。
    猜你喜欢
    • 2016-10-14
    • 2021-09-05
    • 2021-12-08
    • 2023-01-03
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多