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

Docker运行swagger-ui时更新后的本地API文档未生效如何解决

Docker运行Swagger UI加载本地自定义API文档解决方案

问题根因

你之前构建镜像时未将本地修改后的index.html和自定义swagger.json正确覆盖官方镜像内的静态文件,官方Swagger UI镜像默认静态文件存放路径为/usr/share/nginx/html,未替换的情况下会加载默认的petstore示例配置。

方案1:自定义构建镜像(适合固定部署场景)

  • 第一步:确认本地项目目录结构,确保你修改好的dist文件夹在根目录下,文件夹内包含配置了本地swagger.json路径的index.html、以及你的自定义swagger.json文件
  • 第二步:编写Dockerfile内容如下:
FROM swaggerapi/swagger-ui:latest
# 覆盖镜像内默认静态文件
COPY ./dist /usr/share/nginx/html
  • 第三步:重新执行构建和运行命令即可
sudo docker build -t swagger-ui .
sudo docker run -d -p 8080:8080 --name test-container-swagger swagger-ui:latest

方案2:挂载本地文件(适合调试场景,无需重复构建镜像)

不需要修改Dockerfile,直接运行时将本地dist目录挂载到容器的静态文件路径即可:

sudo docker run -d -p 8080:8080 \
  -v /本地dist目录的绝对路径:/usr/share/nginx/html \
  --name test-container-swagger \
  swaggerapi/swagger-ui:latest

方案3:通过环境变量配置(无需修改index.html)

如果不想修改静态文件,可直接用官方镜像内置的API_URL环境变量指定文档路径,同时挂载你的swagger.json文件即可:

sudo docker run -d -p 8080:8080 \
  -v /本地swagger.json所在目录的绝对路径:/usr/share/nginx/html/custom \
  -e API_URL=/custom/swagger.json \
  --name test-container-swagger \
  swaggerapi/swagger-ui:latest

内容的提问来源于stack exchange,提问作者subhra_user

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:51:03