tigroid3
@tigroid3
PHP, YII2, SQL, Postgres, Docker, SPHINX, GIT

Как правильно настроить SWAGGER_JSON в docker?

Несколько дней бью голову и не понимаю почему у меня не прокидывается файл документации в swagger на прод окружении.
docker-compose.yml
nginx:
    image: nginx:alpine
    volumes:
      - ${WORK_DIR}/server/nginx/${APP_ENV}/nginx.conf:/etc/nginx/nginx.conf
      - ${WORK_DIR}/server/nginx/${APP_ENV}/swagger.conf:/etc/nginx/conf.d/swagger.conf
    ports:
      - 80:80
    restart: always
    depends_on:
      - api
      - swagger-ui
    container_name: nginx
swagger-ui:
    image: swaggerapi/swagger-ui
    volumes:
      - ./swagger:/docs
    restart: always
    environment:
      SWAGGER_JSON: /docs/swagger.yml
    container_name: swagger-ui

nginx
server {
  listen 80;
  server_name doc.swagger.loc;

  location / {
    proxy_pass http://swagger-ui:8080/;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $http_host;
  }
}

и да... на локалке всё отлично срабатывает, дока подставляется, конфиги абсолютно одинаковые. Не могу понять в чем может быть дело.
Заметил интересное, на локалке, когда смотрю в контейнер:
docker exec -it swagger-ui ls
есть наша папочка /docs а в ней файл swagger.yml
docker exec -it swagger-ui ls /usr/share/nginx/html
и тут тоже есть файл swagger.yml

на проде:
docker exec -it swagger-ui ls
есть папочка /docs, НО WTF, там 2 файла openapi.yaml openapi.yml, откуда они взялись вообще не понятно, открыть их невозможно
docker exec -it swagger-ui ls /usr/share/nginx/html
тут swagger.yml нет((образы одинаковые, docker-compose идентичный, отличается только конфиг nginx server_name
  • Вопрос задан
  • 2440 просмотров
Решения вопроса 1
наверное все таки на хосте в прод нету./swagger который становится в контейнере docs
volumes:
      - ./swagger:/docs
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы