技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

docker-composeでSwagger【Swagger】【Docker】

docker-compose経由でSwagger UIを起動する方法を紹介します。

docker-composeは.yamlにswaggerに関する命令を記述すれば大丈夫です。

services:
  ...
  swagger:
    image: swaggerapi/swagger-ui
    volumes:
      - ./api/src/docs/swagger.yaml:/swagger.yaml
    ports:
      - "8080:8080"
    environment:
      SWAGGER_JSON: /swagger.yaml
      # API_URL: 


services配下にswaggerに関して記述します。

imageは公開されているswaggerapi/swagger-uiを指定します。
environment配下には、yamlまたはjsonファイルを読み込む方法を指定します。SWAGGER_JSONは、コンテナに配置したファイルを読み込む場合に使用します。API_URLはurlを指定して読み込む場合に使用します。
SWAGGER_JSONを使用する場合、volumesにはアップロードするyamlもしくはjsonファイルを指定します。
portsには、コロンを挟んで左側にホスト側のポート、右側に割り当てる先のコンテナのポートを指定します。

yamlはswaggerのルールに従って記述し、docker-compose.yamlに指定したディレクトリに配置します。
その上で、上記例ですと、ポート8080(例:localhost:8080)にアクセスすることでSwagger UIが表示されます。


swagger-uiの他にも、swagger-editorなどがあります。