You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker Compose与Traefik部署Swagger UI及Editor的配置问题求助

配置问题排查与修改建议

现有配置核心问题

  • 路由匹配规则不合理:使用Path()是精确匹配,仅能匹配/ui、/editor单路径,子路径或带尾斜杠的请求都无法命中,且未指定Traefik转发的目标服务端口,Traefik无法确定流量转发地址。
  • 服务路径适配缺失:Swagger UI、Swagger Editor默认运行在服务根路径,直接通过子路径转发会导致静态资源加载失败,需要配置对应的基础路径参数。
  • Host规则适配问题:配置中的Host(swaggerui)、Host(swaggereditor)需要本地配置hosts映射才能解析,未配置的情况下无法访问。

通用排查步骤

  • 查看容器运行状态与日志:执行docker compose ps确认所有容器处于运行状态,执行docker compose logs 服务名分别查看Traefik、Swagger UI、Swagger Editor的日志,排查启动报错。
  • 检查Traefik路由状态:访问Traefik自带的Dashboard(默认端口8080),在Routers栏目下确认Swagger相关路由是否正常加载,是否存在配置错误标记。
  • 验证服务本身可用性:跳过反向代理,直接进入容器内部访问对应端口,docker compose exec swaggerui curl localhost:8081、docker compose exec swaggereditor curl localhost:8082,确认服务本身可以正常响应。

修改后可用配置

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
      - BASE_URL=/ui
    expose:
      - 8081
    labels:
      - traefik.enable=true
      - traefik.http.routers.swaggerui.rule=PathPrefix(`/ui`)
      - traefik.http.services.swaggerui.loadbalancer.server.port=8081
      - traefik.http.middlewares.strip-ui.stripprefix.prefixes=/ui
      - traefik.http.routers.swaggerui.middlewares=strip-ui
  swaggereditor:
    image: swaggerapi/swagger-editor
    restart: always
    environment:
      - PORT=8082
      - BASE_URL=/editor
    expose:
      - 8082
    labels:
      - traefik.enable=true
      - traefik.http.routers.swaggereditor.rule=PathPrefix(`/editor`)
      - traefik.http.services.swaggereditor.loadbalancer.server.port=8082
      - traefik.http.middlewares.strip-editor.stripprefix.prefixes=/editor
      - traefik.http.routers.swaggereditor.middlewares=strip-editor

修改后启动服务,直接访问http://127.0.0.1/ui即可打开Swagger UI,访问http://127.0.0.1/editor即可打开Swagger Editor,无需额外配置本地hosts。

内容的提问来源于stack exchange,提问作者Kérdezösködő Indián

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:24:03