swagger-ui,swagger-editor環境構築(AWS/Docker)


前提条件

  • AWS EC2インスタンス作成ができている
  • EC2インスタンスにnginxインストール済

EC2にDockerをインストール

EC2インスタンスにSSH接続後、下記コマンドを入力

sudo amazon-linux-extras install docker

Docker起動

sudo systemctl start docker

Docker起動確認

sudo systemctl status docker

ActiveになっていればOK

swagger-editorのイメージをpull

sudo docker pull swaggerapi/swagger-editor

swagger-uiのイメージをpull

sudo docker pull swaggerapi/swagger-ui

swagger-editorを起動

sudo docker run -d -p 8000:8080 swaggerapi/swagger-editor

swagger-uiを起動

sudo docker run -d -p 8001:8080 swaggerapi/swagger-ui

コンテナ起動確認

sudo docker ps


swagger-editorswagger-uiが表示されればOK

nginx.confに追記

nginx.confを開く

sudo vim /etc/nginx/nginx.conf

下記内容をnginx.confに追記
server{}内に必ず追記するようにしてください。

        location /swagger-editor/docker/ {
          proxy_pass http://localhost:8000/;
          proxy_redirect off;
        }

        location /swagger-ui/docker/ {
          proxy_pass http://localhost:8001/;
          proxy_redirect off;
        }

nginxを再起動or再読み込み

再起動

sudo systemctl restart nginx

再読み込み

sudo systemctl reload nginx

すでに、docker上で動かしているコンテナがswagger系以外にもあるなら、再読み込みがおすすめ
再起動して失敗してしまうと、正常に動いていた機能も含めて全て利用不可になる可能性があるので。

URLにアクセスして、swagger-editorの表示を確認

http://(IPv4アドレス)/swagger-editor/docker/

下記のサイトが表示されればOK

URLにアクセスして、swagger-uiの表示を確認

http://(IPv4アドレス)/swagger-ui/docker/

下記のサイトが表示されればOK

自動起動設定(nginx,docker編)

sudo systemctl enable nginx
sudo systemctl enable docker

自動起動設定(dockerコンテナ編)

コンテナ単体の自動起動設定をすることもできます。
コンテナ起動後に、下記コマンドを入力してください。

sudo docker update --restart=always コンテナ名

自動起動設定を無効化する場合は

sudo docker update --restart=no コンテナ名

最後に

以上が、AWS/EC2とDockerを使ったswagger-ui,swagger-editorの環境構築手順です。
不明点、質問等があればコメント欄にお願い致します。