Swagger在Docker Image中运行本地json文件

问题描述 投票:5回答:3

所以,我想运行本地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

运行和SwaggerUI可以在http:localhost:8081下找到,但是默认的Json而不是我的Json,即http://petstore.swagger.io/v2/swagger.json

所以我的查询是应该如何更改docker的命令,它将使用我的本地JSON运行SwaggerUI的图像?

请帮忙。提前致谢。 &快乐编码:)

json docker swagger swagger-ui
3个回答
15
投票

在docker命令中,-v表示挂载卷,而-e表示添加环境变量,所以你想要的可能就是:

docker run -p 8081:8080 -e SWAGGER_JSON=/mnt/lp.json -v /Users/abc/Desktop:/mnt swaggerapi/swagger-ui

2
投票

对我来说,命令有帮助

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测试。


2
投票

它在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)。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.