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