nginx-proxy не работает с докер-контейнером swagger-ui 502 Bad Gateway - PullRequest
0 голосов
/ 01 октября 2018

Я хотел бы изменить свои локальные URL-адреса с 'localhost: port' на связанные с проектом URL-адреса.Все остальные контейнеры в стеке (Node-сервер и т. Д.) Работают, но только контейнер-сборщик выдает ошибку 502 Bad Gateway.

Я добавляю это в мой файл / etc / hosts:

 127.0.0.1       my-api-doc.local

здесьмой файл docker-compose.yml:

   version: '3'
   services: 
     api_doc:
       image: swaggerapi/swagger-ui
       environment:
         - "VIRTUAL_HOST=my-api-doc.local"
         - "VIRTUAL_PORT=4000"
       ports:
         - "4000:8080"
       links:
         - nginx-proxy


     nginx-proxy:
       image: jwilder/nginx-proxy:alpine
       ports:
         - "80:80"
         - "443:443"
       volumes:
         - /var/run/docker.sock:/tmp/docker.sock:ro
       restart: unless-stopped

Проблема в том, что когда я захожу в my-api-doc.local в моем браузере, я получаю ошибку «502 Bad Gateway».Когда я пытаюсь «localhost: 4000», это работает.

1 Ответ

0 голосов
/ 10 октября 2018

Я изменил менеджер nginx на образ докера 'traefik'.Это исправило проблему для меня.Мой последний файл составления докера выглядит следующим образом:

version: '3'
services:
  apiDoc:
    image: swaggerapi/swagger-ui
    container_name: "linkit_api_doc"
    volumes:
    - ../../src/server/:/usr/app/
    depends_on:
      - server
    labels:
    - "traefik.frontend.rule=Host:linkit-air-api.local"
    - "traefik.port=8080"

  reverse-proxy:
    image: traefik  # The official Traefik docker image
    command: --api --docker  # Enables the web UI and tells Træfik to listen to docker
    ports:
      - "80:80"      # The HTTP port
      - "8080:8080"  # The Web UI (enabled by --api)
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock  # So that Traefik can listen to the Docker events
...