无法访问docker网络服务但可以从外部IP访问

时间:2021-03-14 11:22:32

标签: docker docker-compose docker-networking

我有以下 Docker Compose 文件,我在其中声明了 3 个服务:dbapisdk-py-test

服务 sdk-py-test 创建了一个容器 craft-sdk-py-test,它向名为 craft-api 的服务创建的 GraphQL API 容器 api 发送一堆 http 请求。

craft-sdk-py-test 在外部 URL 上发送请求时,请求成功:http://172.30.0.3:5433/graphql

但是当我尝试通过 Docker 网络内部 URL 发送它们时:http://api:5433/graphql 我立即收到一条错误消息:

<块引用>

gql.transport.exceptions.TransportServerError:502 服务器错误:无法解析 url:http://api:5433/graphql

如何使用内部服务名称 api 而不是 IP 地址来路由请求?

Docker Compose 文件

version: "3.5"
services:
  db:
    container_name: craft-db
    restart: always
    image: craft-db
    env_file:
      - ./.env
    ports:
      - 5432:5432

  api:
    container_name: craft-api
    restart: always
    image: craft-api
    env_file:
      - ./.env
    depends_on:
      - db
    ports:
      - 5433:5433

  sdk-py-test:
    container_name: craft-sdk-py-test
    image: craft-sdk-py-test
    build:
      context: ./
      dockerfile: Dockerfile.test
    env_file:
      - ./.env
    depends_on:
      - api
    volumes:
      - ./tests:/tests/tests
      - ./craft:/tests/craft
    command: ["nose2", "-v"]

0 个答案:

没有答案