簡體   English   中英

使用 Docker Compose 和 Traefik 服務 Swagger UI 和編輯器

[英]Serving Swagger UI and editor using Docker Compose and Traefik

我第一次嘗試同時啟動和使用 Swagger UI 和 Swagger Editor。 我的方法是使用 Docker Compose 定義兩個服務並將它們隱藏在反向代理后面,在本例中為 Traefik。

但是,我的撰寫文件有問題,我無法弄清楚。

version: '3'

services:
  traefik:
    image: traefik:v2.5
    restart: always
    command:
      - --accesslog
      - --api.insecure=true
      - --providers.docker
      - --providers.docker.exposedbydefault=false
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "80:80"
      - "8080:8080"
  swaggerui:
    image: swaggerapi/swagger-ui
    restart: always
    environment:
      - PORT=8081
    expose:
      - 8081
    labels:
      - traefik.enable=true
      - traefik.http.routers.swaggerui.rule=Host(`swaggerui`) && Path(`/ui`)
  swaggereditor:
    image: swaggerapi/swagger-editor
    restart: always
    environment:
      - PORT=8082
    expose:
      - 8082
    labels:
      - traefik.enable=true
      - traefik.http.routers.swaggereditor.rule=Host(`swaggereditor`) && Path(`/editor`)

有什么建議嗎?

您必須首先在 Traefik 配置中指定命名入口點地址(實際上是容器中的端口號)

command:
  ...
  - "--entrypoints.swaggerui.address=:8081"

在第二步,你應該為swaggerui容器添加 label,就像這樣

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.swaggerui.entrypoints=swaggerui"
  ...

完成上述步驟后,一切正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM