当前位置: 首页 > news >正文

使用Docker搭建Swagger接口文档工具

1、安装Docker

合集:Docker安装与使用

2、安装Swagger

2.1、方式1

2.1.1、安装swagger-editor

docker pull swaggerapi/swagger-editor
docker run -d --name swagger-editor -p 8080:8080 swaggerapi/swagger-editor

2.1.2、安装swagger-ui

mkdir -p /root/swaggerapi/swagger-ui/data
docker pull swaggerapi/swagger-ui
docker run -d --name swagger-ui -v /root/swaggerapi/swagger-ui/data:/usr/share/nginx/html/data -p 3000:8080 swaggerapi/swagger-ui

2.2、方式2

2.2.1、安装swagger-editor

创建目录;

mkdir -p /root/swaggerapi/swagger-editor
cd /root/swaggerapi/swagger-editor/

下载:

wget https://github.com/swagger-api/swagger-editor/archive/refs/tags/v4.14.5.tar.gz

解压:

tar -xf v4.14.5.tar.gz

项目结构:

# 命令:
tree -L 1 swagger-editor/# 内容:
swagger-editor/
|-- swagger-editor-4.14.5
`-- v4.14.5.tar.gz1 directory, 1 file

查看Dockerfile文件:

# 命令;
cd swagger-editor-4.14.5
cat Dockerfile# 内容:
FROM nginx:1.27.4-alpineLABEL maintainer="vladimir.gorej@smartbear.com" \org.opencontainers.image.authors="vladimir.gorej@smartbear.com" \org.opencontainers.image.url="https://editor.swagger.io" \org.opencontainers.image.source="https://github.com/swagger-api/swagger-editor"ENV BASE_URL="/" \PORT="8080"RUN apk update && apk add --no-cache "tiff>=4.4.0-r4"COPY nginx.conf /etc/nginx/templates/default.conf.templateCOPY ./index.html /usr/share/nginx/html/
COPY ./dist/oauth2-redirect.html /usr/share/nginx/html/
COPY ./dist/* /usr/share/nginx/html/dist/
COPY ./docker-run.sh /docker-entrypoint.d/91-docker-run.shRUN chmod +x /docker-entrypoint.d/91-docker-run.shEXPOSE 8080

构建镜像:

docker build -t swagger-editor:v1 .

启动容器:

docker run -d --name swagger-editor -p 8080:8080 swagger-editor:v1

2.2.2、安装swagger-ui

创建目录;

mkdir -p /root/swaggerapi/swagger-ui/data
cd /root/swaggerapi/swagger-ui/

下载:

wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.21.0.tar.gz

解压:

tar -xf v5.21.0.tar.gz

项目结构:

# 命令:
tree -L 1 swagger-ui/# 内容:
swagger-ui/
|-- data
|-- swagger-ui-5.21.0
`-- v5.21.0.tar.gz2 directories, 1 file

查看Dockerfile文件:

# 命令:
cd swagger-ui-5.21.0
cat Dockerfile# 内容:
# Looking for information on environment variables?
# We don't declare them here — take a look at our docs.
# https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.mdFROM nginx:1.27.4-alpineLABEL maintainer="vladimir.gorej@gmail.com" \org.opencontainers.image.authors="vladimir.gorej@gmail.com" \org.opencontainers.image.url="docker.swagger.io/swaggerapi/swagger-ui" \org.opencontainers.image.source="https://github.com/swagger-api/swagger-ui" \org.opencontainers.image.description="SwaggerUI Docker image" \org.opencontainers.image.licenses="Apache-2.0"RUN apk add --update-cache --no-cache "nodejs" "libxml2>=2.13.4-r5" "libexpat>=2.7.0-r0" "libxslt>=1.1.42-r2" "xz-libs>=5.6.3-r1" "c-ares>=1.34.5-r0"LABEL maintainer="char0n"ENV API_KEY="**None**" \SWAGGER_JSON="/app/swagger.json" \PORT="8080" \PORT_IPV6="" \BASE_URL="/" \SWAGGER_JSON_URL="" \CORS="true" \EMBEDDING="false"COPY --chown=nginx:nginx --chmod=0666 ./docker/default.conf.template ./docker/cors.conf ./docker/embedding.conf /etc/nginx/templates/COPY --chmod=0666 ./dist/* /usr/share/nginx/html/
COPY --chmod=0555 ./docker/docker-entrypoint.d/ /docker-entrypoint.d/
COPY --chmod=0666 ./docker/configurator /usr/share/nginx/configurator# Simulates running NGINX as a non root; in future we want to use nginxinc/nginx-unprivileged.
# In future we will have separate unpriviledged images tagged as v5.1.2-unprivileged.
RUN chmod 777 /usr/share/nginx/html/ /etc/nginx/conf.d/ /etc/nginx/conf.d/default.conf /var/cache/nginx/ /var/run/EXPOSE 8080

构建镜像:

docker build -t swagger-ui:v1 .

启动容器:

docker run -d --name swagger-ui -v /root/swaggerapi/swagger-ui/data:/usr/share/nginx/html/data -p 3000:8080 swagger-ui:v1

3、浏览器访问

假设当前ip为192.168.186.128
浏览器访问swagger-editor:http://192.168.186.128:8080
浏览器访问swagger-ui:http://192.168.186.128:3000

浏览器访问swagger-editor:

浏览器访问swagger-ui:

4、测试

点击“swagger-editor”页面的“File”,选择“Convert and save as JSON”:

将下载的文件上传到服务器的“/root/swaggerapi/swagger-ui/data”:

在“swagger-editor”页面的输入框填写“/data/openapi.json”或者“url”,点击“Explore”:

5、详见

https://swagger.io/
https://github.com/swagger-api/swagger-editor
https://github.com/swagger-api/swagger-ui

6、其他

合集:API文档

合集:API文档2

http://www.dtcms.com/a/553487.html

相关文章:

  • 团队氛围建设 网站网站开发合同 深圳思
  • 机器学习第二阶段
  • 深圳网站建设单位如何在淘宝网做自己的网站
  • Python中正则表达式(re 模块)详解使用(1)原理篇
  • 给运维插上 AI 的翅膀:我的 Dify AIOps 探索之旅
  • aspcms建站wordpress 前台登陆
  • VTK操作3D文件
  • 3DMAX低多边形城市建筑模型预设插件LowPolyCityBuilder使用方法
  • windows系统上aosp15上winscope离线html如何使用?
  • 公司备案网站负责人是谁中山金舜家庭用品有限公司怎样网站地图
  • 讨论矩阵等价、相似的几何含义
  • 基于 LLM 的社交机器人对舆论动态的影响机制
  • 贸易公司如何做网站莱芜网站建设怎么样
  • 多形态机器人协同发力优艾智合引领核电运维智能化升级
  • 【C++】基于HashTable的底层实现unordered_map和unordered _set 的封装
  • 剧本杀小程序系统开发:如何打造“爆款”剧本的数字引擎?
  • PsTools 学习笔记(7.5):PsExec 的备用凭据与安全基线
  • 【Python】——基础语法练习题
  • 用n8n实现一个长视频生成工作流
  • 汉阳网站建设品牌建设规划品牌意向
  • 宝安做棋牌网站建设哪家服务好wordpress 在线手册
  • 高频 Redis 面试题清单
  • 全0初始化/全1初始化相关
  • Dioxus v0.7.0 released
  • 500+ AI Agent实战项目汇总:从CrewAI到Langgraph的开源实践指南
  • 案例分析交叉熵和交叉验证区别和联系
  • 高端响应式网站建设太原建站模板源码
  • 美团率先将社保补贴推向全国,外卖骑手成蓝领福利“标杆”
  • 【尚庭公寓118-121】[学习第三天]
  • ingress-nginx传递用户真实ip问题