Mim*_*eer 3 swagger docker swagger-ui
我在https://swagger.io/docs/open-source-tools/swagger-ui/usage/installation/上读到,可以通过 docker 通过编写在 swagger ui 上托管本地文件(swagger.json)
docker run -p 80:8080 -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui
由于我的 swagger.json 文件位于 C:\wildfly-9.0.2.Final 我将其写为
docker run -p 8086:8080 -e SWAGGER_JSON=/mnt/swagger.json -v C:/wildfly-9.0.2.Final:/mnt swaggerapi/swagger-ui
Run Code Online (Sandbox Code Playgroud)
但是,在查看http://127.0.0.1:8086/时,我仍然得到默认的 petstore 示例,而不是我自己的 swagger.json 。
我尝试将探索栏中写入的内容更改为与默认值(https://petstore.swagger.io/v2/swagger.json)不同的 swagger.json ,这在网站本身和网站上都找不到码头工人主机
[error] 26#26: *2 open() "/usr/share/nginx/html/swagger.json" failed (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET /swagger.json HTTP/1.1", host: "127.0.0.1:8090", referrer: "http://127.0.0.1:8090/"
Run Code Online (Sandbox Code Playgroud)
和 C:/wildfly-9.0.2.Final/swagger.json 这在网站上给出了错误'
Fetch errorFailed to fetch C:/wildfly-9.0.2.Final/swagger.json
Fetch errorPossible cross-origin (CORS) issue? The URL origin (file://) does not match the page (http://127.0.0.1:8086). Check the server returns the correct 'Access-Control-Allow-*' headers.
Run Code Online (Sandbox Code Playgroud)
任何想法出了什么问题吗?
今天,我遇到了同样的问题。要理解的关键是SWAGGER_JSON必须指向容器内部的路径,而不是本地文件系统上的路径。本质上,您要做的是:首先安装本地文件夹swagger.json,然后 swagger-ui 使用SWAGGER_JSON环境变量来查找它。
docker run \
--name swagger \
--rm \
-p 8080:8080 \
-e SWAGGER_JSON=/bar/swagger.json \
-v /c/my/local/path/to/swagger/file:/bar \
swaggerapi/swagger-ui
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4146 次 |
| 最近记录: |