Docker撰写:在环境中使用相对服务地址

时间:2017-03-07 19:24:38

标签: docker-compose dockerfile

例如,我在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。那么如何在这里自动映射地址和端口。

谢谢

1 个答案:

答案 0 :(得分:0)

使用docker-compose,所有服务始终可以按名称解析。

在您的示例中,您应该从前端向后端添加depends_on,只需使用名称backend来处理后端服务器。

frontend:
  depends_on:
    - 'backend'

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