通过Docker向swagger ui提供本地文件

通过Docker向swagger ui提供本地文件,docker,swagger,swagger-ui,Docker,Swagger,Swagger Ui,我已经读到,可以通过docker编写一个本地文件(swagger.json)到swagger ui上 docker run-p80:8080-e-SWAGGER_-JSON=/foo/SWAGGER.JSON-v/bar:/foo-SWAGGER-api/SWAGGER-ui 由于我的swagger.json文件位于C:\wildfly-9.0.2.Final,因此我将其编写为 docker run -p 8086:8080 -e SWAGGER_JSON=/mnt/swagger.json -

我已经读到,可以通过docker编写一个本地文件(swagger.json)到swagger ui上
docker run-p80:8080-e-SWAGGER_-JSON=/foo/SWAGGER.JSON-v/bar:/foo-SWAGGER-api/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
然而,我仍然得到了默认的petstore示例,而不是我自己的swagger.json

我已经尝试将在探索栏中写入的内容更改为与默认值()不同的swagger.json,这会在网站本身和docker主机上提供一个未找到的值

[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/"
和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.

有什么问题吗?

我认为您需要提供
SWAGGER\u JSON
作为本地文件路径和卷

应该是这样的

docker run -p 8086:8080 -e SWAGGER_JSON=C:/wildfly-9.0.2.Final/swagger.json -v C:/wildfly-9.0.2.Final:/mnt swaggerapi/swagger-ui
关于你最后的错误


由于文件位于主机上,您无法从容器访问
C:/wildfly-9.0.2.Final/swagger.json
。改为尝试
/mnt/swagger.json
在更正上述命令后,它应该可以工作。

我认为您需要提供
swagger\u json
作为您的本地文件路径和卷

应该是这样的

docker run -p 8086:8080 -e SWAGGER_JSON=C:/wildfly-9.0.2.Final/swagger.json -v C:/wildfly-9.0.2.Final:/mnt swaggerapi/swagger-ui
关于你最后的错误


由于文件位于主机上,您无法从容器访问
C:/wildfly-9.0.2.Final/swagger.json
。相反,请尝试
/mnt/swagger.json
在更正上述命令后,它应该可以工作。

今天,我遇到了同样的问题。 要理解的关键是
SWAGGER\u JSON
必须指向容器内部的路径,而不是本地文件系统上的路径。从本质上讲,您正在做的是:首先在本地装入您的
swagger.json
所在的文件夹,然后swagger ui使用
swagger\u json
环境变量来查找它

docker运行\
--大摇大摆\
--rm\
-p 8080:8080\
-e SWAGGER_JSON=/bar/SWAGGER.JSON\
-v/c/my/local/path/to/swagger/file:/bar\
招摇过市API/招摇过市ui

今天,我也遇到了同样的问题。 要理解的关键是
SWAGGER\u JSON
必须指向容器内部的路径,而不是本地文件系统上的路径。从本质上讲,您正在做的是:首先在本地装入您的
swagger.json
所在的文件夹,然后swagger ui使用
swagger\u json
环境变量来查找它

docker运行\
--大摇大摆\
--rm\
-p 8080:8080\
-e SWAGGER_JSON=/bar/SWAGGER.JSON\
-v/c/my/local/path/to/swagger/file:/bar\
招摇过市API/招摇过市ui