首页主机资讯Ubuntu Swagger与Docker如何搭配使用

Ubuntu Swagger与Docker如何搭配使用

时间2025-12-04 19:22:04发布访客分类主机资讯浏览1475
导读:**在 Ubuntu 上,使用 Docker 运行 Swagger Editor 与 Swagger UI 是最简便、可移植性最好的方式。**下面给出从准备环境到多服务编排的完整操作指引,并包含与后端 API 联动与常见问题处理。 一 准备...

**在 Ubuntu 上,使用 Docker 运行 Swagger Editor 与 Swagger UI 是最简便、可移植性最好的方式。**下面给出从准备环境到多服务编排的完整操作指引,并包含与后端 API 联动与常见问题处理。

一 准备环境

  • 安装 Docker(Ubuntu 20.04/22.04 示例):
    • 更新索引并安装依赖:sudo apt update & & sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
    • 添加 Docker GPG 密钥与仓库:
      • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
      • echo “deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    • 安装并启动 Docker:sudo apt update & & sudo apt install -y docker-ce docker-ce-cli containerd.io & & sudo systemctl enable --now docker
    • 验证:sudo docker run --rm hello-world
  • 可选安装 Docker Compose(便于多容器编排):sudo apt install -y docker-compose-plugin 或参考官方二进制安装方式。

二 使用 Docker 运行 Swagger Editor 与 Swagger UI

  • 拉取官方镜像(建议固定版本):
    • docker pull swaggerapi/swagger-editor:v4.6.0
    • docker pull swaggerapi/swagger-ui:v4.15.5
  • 启动容器(示例将主机端口映射为 38080/38081):
    • Swagger Editor:docker run -d --name swagger-editor -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
    • Swagger UI:docker run -d --name swagger-ui -p 38081:8080 swaggerapi/swagger-ui:v4.15.5
  • 访问:
    • Editor:http://localhost:38080
    • UI:http://localhost:38081
  • 说明:Swagger Editor 默认加载在线示例规范;Swagger UI 首次访问为空,需要导入 swagger.yaml/swagger.json 或在页面中配置 URL。

三 使用 Docker Compose 编排

  • 创建 docker-compose.yml:
    • version: ‘3.8’ services: swagger-editor: image: swaggerapi/swagger-editor:v4.6.0 ports: - “38080:8080” swagger-ui: image: swaggerapi/swagger-ui:v4.15.5 ports: - “38081:8080”
  • 启动:docker compose up -d(或 docker-compose up -d)
  • 访问同上,Compose 便于统一启停与后续扩展(如反向代理、多实例)。

四 加载本地 OpenAPI 规范与对接后端 API

  • 方式一(推荐)卷挂载 + 环境变量指定规范文件:
    • 将规范文件放到项目目录(如 ./openapi.yaml),启动 UI 容器:
      • docker run -d --name swagger-ui -p 38081:8080
        -e SWAGGER_JSON=/usr/share/nginx/html/swagger.yaml
        -v $(pwd)/openapi.yaml:/usr/share/nginx/html/swagger.yaml:ro
        swaggerapi/swagger-ui:v4.15.5
    • 说明:不同镜像中默认 HTML 静态文件目录可能不同,常见为 /usr/share/nginx/html/app。如使用官方 swaggerapi/swagger-ui,上述路径通常有效;如不确定,可进入容器查看默认页面或通过自定义 Dockerfile 调整。
  • 方式二 在容器内放置文件并指定路径:
    • 将文件拷入镜像或通过卷挂载到容器内某路径,然后设置 SWAGGER_JSON 为该路径。
  • 与后端 API 联动(解决跨域与可达性):
    • 开发环境可在后端开启 CORS(如 Access-Control-Allow-Origin 等);
    • 生产环境建议将 Swagger UI 与后端置于同一域名下,或通过反向代理(Nginx/Traefik)统一承载,并在 UI 配置中把服务器地址写为后端服务的实际地址(如 http://backend:8080/api)。

五 常见问题与优化

  • 端口占用:检查并释放端口(如 80/8080/38080/38081),或改用未占用端口映射。
  • 版本固定:生产环境建议固定镜像标签(如 v4.6.0v4.15.5),避免升级导致页面或行为变化。
  • 路径与权限:挂载卷时注意文件权限与路径正确性;只读挂载(:ro)更安全。
  • 多实例与扩展:如需横向扩展或对外统一入口,可在 Compose 中增加多个 UI 实例并配合反向代理/负载均衡。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Swagger与Docker如何搭配使用
本文地址: https://pptw.com/jishu/763834.html
Linux spool队列故障怎么解决 Linux spool日志文件如何清理

游客 回复需填写必要信息