代码之家  ›  专栏  ›  技术社区  ›  Ankur Verma

在Docker映像中使用本地json文件运行Swagger

  •  19
  • Ankur Verma  · 技术社区  · 6 年前

    所以,我想运行 本地招摇过市UI 关于本地Json。为此,我遵循可用的说明 here :

    以下是该文档中共享的命令:

    docker run -p 8081:8080 -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui
    

    在这里,我理解 -p 选项,但此选项 -e类 -五 令人困惑。

    所以我们假设我有 在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
    

    但是 -五 命令的一部分。我需要考虑的价值是什么 -五 选项,但基本命令:

    docker run -p 8081:8080 swaggerapi/swagger-ui
    

    Runs and SwaggerUI可在 http:本地主机:8081 但使用默认Json,而不是我的Json,即 http://petstore.swagger.io/v2/swagger.json

    所以我的问题是,我应该对 码头工人 这将使用我的本地JSON运行SwaggerUI的图像?

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

    5 回复  |  直到 6 年前
        1
  •  25
  •   David    6 年前

    在docker命令中 -v 是指装入卷和 -e 意味着添加环境变量,因此您需要的可能是:

    docker run -p 8081:8080 -e SWAGGER_JSON=/mnt/lp.json -v /Users/abc/Desktop:/mnt swaggerapi/swagger-ui
    
        2
  •  5
  •   Siby Augustine    5 年前

    对我来说,执行命令很有帮助

    docker run -p 8081:8080 -e SWAGGER_JSON=/tmp/swagger.json -v `pwd`/docs:/tmp swaggerapi/swagger-ui:v3.21.0
    

    “pwd”/文档=>包含我的狂妄自大。json文件。

    swaggerapi/swagger ui:v3。21.0=>此版本支持SWAGGER\u JSON。其已测试。

        3
  •  4
  •   M.Octavio    5 年前

    我在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

        4
  •  1
  •   rustyMagnet    3 年前

    我真的想要 swagger-editor 而不是 swaggerapi/swagger-ui :

    docker pull swaggerapi/swagger-editor
    docker run -p 7999:8080 swaggerapi/swagger-editor 
    

    然后你会得到一个完整的 File 菜单:

    Before I had a pull the

        5
  •  1
  •   Chris    3 年前

    而不是指定 SWAGGER_JSON 您可以执行以下操作,立即在Swagger UI中打开API规范:

    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} 在Linux中可能有点不同。


    幕后发生了什么

    这里发生的事情是,您装载一个卷( -v ${PWD}://usr/share/nginx/html/api )在包含您的招摇过市规范的nginx html文件夹中(在本例中 openapi.yaml ).带 -e URL=api/openapi.yaml 默认URL将被覆盖,而将使用您的招摇过市规范。