docker 容器解析swagger

用go的swagger 包时升级了包的版本后发现swagger文档的model结构体无法展开,怎么设置参数都没用。只能用特定的包版本。改用docker 开一个容器来解析使用swag init生的 swagger json文件。SWAGGER_JSON 是指定初次进入界面时展示的文档。把不同的.json文件复制到宿主机doc 目录就可以在web界面的搜索输入文件名,就会展示对应的json文件的文档。

version: '3.0'
services:
  server:
    container_name: swagger
    image: swaggerapi/swagger-ui
    privileged: true
    restart: always
    extra_hosts:
      - "host.docker.internal:host-gateway"
#    network_mode: bridge
    environment:
      SWAGGER_JSON: "/service/doc/test.json"
#      DEFAULT_MODELS_EXPAND_DEPTH: 5
      DEFAULT_MODEL_EXPAND_DEPTH: 10
#      DEEP_LINKING: true
#      DOC_EXPANSION: "full"
    volumes:
    - ./doc:/service/doc
    ports:
      - 8080:8080
#    tty: true

有多个文档时,可以修改环境变量让文档搜索框变成单选框,方便查看文档:

services:
  server:
    container_name: swagger
    image: swaggerapi/swagger-ui
    privileged: true
    restart: always
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - ./doc:/usr/share/nginx/html/doc  # 使用Nginx默认静态目录
    environment:
      URLS: '[
        {"url": "/doc/service-1.json", "name": "服务1文档"},
        {"url": "/doc/service-2.json", "name": "服务2文档"},
        {"url": "/doc/service-3.json", "name": "服务3文档"}
      ]'
      URLS_PRIMARY_NAME: "API 分组选择"  # 下拉框默认显示文本(可选)
      DEFAULT_MODEL_EXPAND_DEPTH: 10
      #      DEEP_LINKING: true
      #      DOC_EXPANSION: "full"
    ports:
      - 8024:8080
posted @ 2025-04-09 14:23  熊先生不开玩笑  阅读(64)  评论(0)    收藏  举报