Преобразование официального docker-compose kong для развертывания в режиме docker swarm не работает? - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь написать файл docker-compose шлюза Конг-API, который я могу использовать для развертывания в качестве стека в док-узлах, работающих в режиме Docker Swarm.

У kong есть собственный официальный файл docker-compose, но, к сожалению, он использует версию 2.1, и поэтому мне нужно удалить некоторые функции, которые зависят от условий.

Ниже приводится docker-compose.yml Iнаписал, чтобы сделать его совместимым со стеком докера. Проблема в том, что служба миграции не работает

version: '3.4'
networks:
 net-kong:
services:  consul:
    image: progrium/consul:latest    networks:
      - net-kong    command: -server -bootstrap -ui-dir /ui    healthcheck:
      test: ["CMD-SHELL", "curl -I -s -L http://127.0.0.1:8500 || exit 1"]
      interval: 5s
      retries: 10
    ports:
      - 8500:8500
    expose:
      - 53
      - 8300
      - 8301
      - 8302
      - 8400
      - 8500
    dns:
      - 127.0.0.1

  nginx-lb:
    image: nginx:kong
    networks:
      - net-kong
    depends_on:
      - consul
    ports:
      - 8000:8000
      - 8443:8443
      - 8001:8001
      - 8444:8444
    expose:
      - 8000
      - 8443
      - 8001
      - 8444
    links:
      - consul:consul
    command: >
        /bin/containerpilot
        -config file:///etc/containerpilot/containerpilot.json
        nginx -g "daemon off;"

  kong-database:
    image: postgres:9.5
    networks:
      - net-kong
    environment:
      - POSTGRES_USER=kong
      - POSTGRES_DB=kong
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
      interval: 10s
      timeout: 5s
      retries: 5

  kong-migration:
    image: kong
    networks:
      - net-kong
    depends_on:
      - kong-database
    environment:
      - KONG_DATABASE=postgres
      - KONG_PG_HOST=kong-database
    command: kong migrations up

  kong:
    image: kong
    networks:
      - net-kong
    depends_on:
      - kong-database
      - kong-migration
    environment:
      - KONG_DATABASE=postgres
      - KONG_PG_HOST=kong-database
      - KONG_PG_DATABASE=kong
      - KONG_ADMIN_LISTEN=0.0.0.0:8001
    expose:
      - 8000
      - 8001
      - 8443
      - 8444
    healthcheck:
      test: ["CMD-SHELL", "curl -I -s -L http://127.0.0.1:8000 || exit 1"]
      interval: 5s
      retries: 10

Насколько я понимаю, она не работает, потому что миграция пытается выполнить перед базой данныхСервис работает. Что приведет к ошибке.Пожалуйста, помогите мне в этом.

Миграции не работают, и даже журналы ничего не показывают при вводе. docker service logs service-name

...