1

でサービスを実行しているときにネットワークの問題が発生していますdocker-compose。基本的に、Kong を介して、セットアップしたシンプルな Flask API に get リクエストを送信しようとしています。docker-compose.yml のバージョンが「3.0」より下です。

services:
  postgres:
    image: postgres:9.4
    container_name: kong-database
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=kong
      - POSTGRES_DB=kong

  web:
    image: kong:latest
    container_name: kong
    environment:
      - DATABASE=postgres
      - KONG_PG_HOST=postgres
    restart: always
    ports:
      - "8000:8000"
      - "443:8443"
      - "8001:8001"
      - "7946:7946"
      - "7946:7946/udp"
    links:
      - postgres

  ui:
    image: pgbi/kong-dashboard
    container_name: kong-dashboard
    ports:
      - "8080:8080"
  employeedb:
    build: test-api/
    restart: always
    ports:
       - "5002:5002"

コマンドで API を kong に追加しますcurl -i -X POST --url http://localhost:8001/apis/ --data name=employeedb --data upstream_url=http://localhost:5002 --data hosts=employeedb --data uris=/employees。DockerネットワークIPとテストAPIの名前をupstreamurlのホスト名として渡す、さまざまな名前を含む入力の多くの組み合わせでこれを試しました。API を Kong に追加すると、

HTTP/1.1 502 Bad Gateway
Date: Tue, 11 Jul 2017 14:17:17 GMT
Content-Type: text/plain; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: kong/0.10.3

さらに、実行中の docker コンテナに入りdocker exec it <container-id> /bin/bash、予想されるフラスコ エンドポイントに curl リクエストを送信しようとしました。localhost:5002/employeesAPI を実行しているコンテナ上で、 と の両方を正常に呼び出すことができましたemployeedb:5002/employees。ただし、Kong を実行しているコンテナーから作成すると、

curl -iv -X GET --url 'http://employeedb:5002/employees'
* About to connect() to employeedb port 5002 (#0)
*   Trying X.X.X.X...
* Connection refused
* Failed connect to employeedb:5002; Connection refused
* Closing connection 0

コンテナーを相互に公開する何らかの構成が欠落していますか?

4

1 に答える 1