web-dev-qa-db-ja.com

Docker Imageでローカルjsonファイルを使用して実行するSwagger

それで、私はローカルJsonに関してローカルSwagger UIを実行したいと思いました。そしてそのために私は利用可能な指示に従います ここ

そのドキュメントで共有されているコマンドは次のとおりです。

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

それで私のクエリは、ローカルJSONでSwaggerUIのイメージを実行するdockerのコマンドに何を変更すればよいですか?

助けてください。前もって感謝します。 &ハッピーコーディング:)

10
Ankur Verma

Dockerコマンドで-vはボリュームをマウントすることを意味し、-eは環境変数を追加することを意味するので、おそらくこれは次のようになります。

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

それが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

3
M.Octavio

私のために次のコマンドが役立ちました

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でサポートされています。テスト済みです。

3
Siby Augustine