Docker 图片中的 Swagger 运行 本地 json 文件
Swagger running with local json file in Docker Image
所以,我想 运行 local Swagger UI 相对于 Local Json。为此,我遵循可用的说明 here:
这是该文档中共享的命令:
docker run -p 8081:8080 -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui
这里我理解-p选项但是这个-e和-v是令人困惑。
所以假设我 在我的桌面 Mac 中保存了一个 JSON 文件,其路径是 :
/Users/abc/Desktop/lp.json
因此对于此文件,命令将更改为:
docker run -p 8081:8080 -e SWAGGER_JSON=/Users/abc/Desktop/lp.json -v /bar:/foo swaggerapi/swagger-ui
但是命令的 -v 部分呢?关于 -v 选项,我需要输入的值是多少,尽管基本命令即:
docker run -p 8081:8080 swaggerapi/swagger-ui
Runs and SwaggerUI 在 http:localhost:8081 可用,但默认 Json 而不是我的 Json,即http://petstore.swagger.io/v2/swagger.json
所以我的问题是我应该如何更改 docker 的命令,这将 运行 Swagger 的图像UI 和我当地的 JSON?
请帮忙。提前致谢。
&
快乐编码
:)
在docker命令中-v
表示挂载卷,-e
表示添加环境变量,所以你想要的大概是这样的:
docker run -p 8081:8080 -e SWAGGER_JSON=/mnt/lp.json -v /Users/abc/Desktop:/mnt swaggerapi/swagger-ui
对我来说,以下命令很有帮助
docker run -p 8081:8080 -e SWAGGER_JSON=/tmp/swagger.json -v `pwd`/docs:/tmp swaggerapi/swagger-ui:v3.21.0
'pwd'/docs => 包含我的 swagger.json 文件。
swaggerapi/swagger-ui:v3.21.0 => 此版本支持 SWAGGER_JSON.Its 测试。
我在 Windows 上的工作方式是这样的:
docker run -p 80:8080 -e SWAGGER_JSON=/mnt/swagger-v1.json -v C:\Users\jimen\Downloads:/mnt swaggerapi/swagger-ui
其中C:\Users\jimen\Downloads
是本地swagger文件所在的文件夹(swagger-v1.json
)。
我其实想要 swagger-editor
而不是 swaggerapi/swagger-ui
:
docker pull swaggerapi/swagger-editor
docker run -p 7999:8080 swaggerapi/swagger-editor
然后你会得到一个完整的 File
菜单:
您可以执行以下操作,而不是指定 SWAGGER_JSON
以立即在 Swagger UI 中获取您的 API 规范开放式 UI:
docker run --name my-swagger-ui -p 80:8080 -e URL=api/openapi.yaml -v ${PWD}://usr/share/nginx/html/api swaggerapi/swagger-ui:v3.51.1
这也用一天前发布的最新 swagger-ui
图片进行了测试。
注意: 我 运行 这个命令来自 Windows,因此指定环境变量 ${PWD}
在 [=33] 中可能有点不同=].
幕后发生的事情
这里发生的事情是,您在 nginx html 文件夹中安装了一个卷 (-v ${PWD}://usr/share/nginx/html/api
),其中包含您的 swagger 规范(在本例中为 openapi.yaml
)。使用 -e URL=api/openapi.yaml
默认的 URL 将被覆盖,取而代之的是你的 swagger 规范将被使用。
所以,我想 运行 local Swagger UI 相对于 Local Json。为此,我遵循可用的说明 here:
这是该文档中共享的命令:
docker run -p 8081:8080 -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui
这里我理解-p选项但是这个-e和-v是令人困惑。
所以假设我 在我的桌面 Mac 中保存了一个 JSON 文件,其路径是 :
/Users/abc/Desktop/lp.json
因此对于此文件,命令将更改为:
docker run -p 8081:8080 -e SWAGGER_JSON=/Users/abc/Desktop/lp.json -v /bar:/foo swaggerapi/swagger-ui
但是命令的 -v 部分呢?关于 -v 选项,我需要输入的值是多少,尽管基本命令即:
docker run -p 8081:8080 swaggerapi/swagger-ui
Runs and SwaggerUI 在 http:localhost:8081 可用,但默认 Json 而不是我的 Json,即http://petstore.swagger.io/v2/swagger.json
所以我的问题是我应该如何更改 docker 的命令,这将 运行 Swagger 的图像UI 和我当地的 JSON?
请帮忙。提前致谢。 & 快乐编码 :)
在docker命令中-v
表示挂载卷,-e
表示添加环境变量,所以你想要的大概是这样的:
docker run -p 8081:8080 -e SWAGGER_JSON=/mnt/lp.json -v /Users/abc/Desktop:/mnt swaggerapi/swagger-ui
对我来说,以下命令很有帮助
docker run -p 8081:8080 -e SWAGGER_JSON=/tmp/swagger.json -v `pwd`/docs:/tmp swaggerapi/swagger-ui:v3.21.0
'pwd'/docs => 包含我的 swagger.json 文件。
swaggerapi/swagger-ui:v3.21.0 => 此版本支持 SWAGGER_JSON.Its 测试。
我在 Windows 上的工作方式是这样的:
docker run -p 80:8080 -e SWAGGER_JSON=/mnt/swagger-v1.json -v C:\Users\jimen\Downloads:/mnt swaggerapi/swagger-ui
其中C:\Users\jimen\Downloads
是本地swagger文件所在的文件夹(swagger-v1.json
)。
我其实想要 swagger-editor
而不是 swaggerapi/swagger-ui
:
docker pull swaggerapi/swagger-editor
docker run -p 7999:8080 swaggerapi/swagger-editor
然后你会得到一个完整的 File
菜单:
您可以执行以下操作,而不是指定 SWAGGER_JSON
以立即在 Swagger UI 中获取您的 API 规范开放式 UI:
docker run --name my-swagger-ui -p 80:8080 -e URL=api/openapi.yaml -v ${PWD}://usr/share/nginx/html/api swaggerapi/swagger-ui:v3.51.1
这也用一天前发布的最新 swagger-ui
图片进行了测试。
注意: 我 运行 这个命令来自 Windows,因此指定环境变量 ${PWD}
在 [=33] 中可能有点不同=].
幕后发生的事情
这里发生的事情是,您在 nginx html 文件夹中安装了一个卷 (-v ${PWD}://usr/share/nginx/html/api
),其中包含您的 swagger 规范(在本例中为 openapi.yaml
)。使用 -e URL=api/openapi.yaml
默认的 URL 将被覆盖,取而代之的是你的 swagger 规范将被使用。