LoginSignup
1
0

More than 5 years have passed since last update.

[Azure] Web App On Linux を nginx で動かす

Last updated at Posted at 2017-07-04

まだまだプレビュー中の Web App On Linux ですが、内部的にはDockerコンテナが採用されています。

ビルトインのランタイムを選ぶと、Webサーバには apache が設定されたコンテナが起動しますが、nginx で動かすこともできるので試してみました。

ビルトインのランタイム(これらはapacheになります):
image.png

Dockerコンテナ作成

まず、nginxが動作するコンテナが必要なので、作成してDocker Hubに登録します。

未登録の場合は Docker Hub にサインアップしておきます。
image.png

作成したアカウントでログインしておきます。

$ docker login
Username: 
Password: 

今回は起動を試してみるだけなのでpublicのnginxイメージを使用します。

$ docker image ls nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              958a7ae9e569        2 weeks ago         109MB

そのままnginxtestという名称で起動します。初回はpullしてくるので少し時間がかかります。

$ docker run --name nginxtest -p 8001:80 -d nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
※略※
Digest: sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268
Status: Downloaded newer image for nginx:latest
5ae9cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfccc5d

docker psコマンドで起動したことを確認します。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
5ae9cxxxxxxx        nginx               "nginx -g 'daemon ..."   6 minutes ago       Up 6 minutes        0.0.0.0:8001->80/tcp   nginxtest

これをそのまま実行してもいいのですが、動作確認用に少しだけ変更しておきます。vimがインストールされていなかったのでインストールし、index.htmlを少し編集します。

$ docker exec -it nginxtest /bin/bash
root@5ae9c05b31fd:/# apt-get install vim
※略※
root@5ae9c05b31fd:/# vim /usr/share/nginx/html/index.html

今回はタイトルを少しだけ変更してみました。
image.png

変更したイメージをDocker Hubにpushします。

$  docker stop nginxtest
nginxtest
$ docker commit -m "hello world" nginxtest nakatsukasa/nginxtest
sha256:d110e08xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$ docker push nakatsukasa/nginxtest
The push refers to a repository [docker.io/nakatsukasa/nginxtest]
c0e8abf3a3bd: Pushed
※略※
latest: digest: sha256:d110e08xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx size: 1160

以上でDocker側の作業が終了しました。
image.png

Web App On Linux作成

ポータルで新規 -> 「Web App On Linux (プレビュー)」からWebAppを作成します。
「イメージのソース」で"Docker Hub"を選び、pushしたタグを指定します。
image.png

動作確認

作成したWebAppにブラウザでアクセスすれば、変更したindex.htmlが表示されることを確認できます(スクリーンショットが上と一緒ですが...)。
image.png

以上で nginx コンテナが実行できることが確認できました。

注意事項

  • 今回はDocker Hubのpublicリポジトリで試しましたが、外部公開しないものはprivateリポジトリを使用して下さい。
  • WebAppのアクセス制限(windows版ではweb.config)は、nginx側での対応が必要です。nginx.confファイルに設定を追加して下さい。
  • 実利用の(テスト用途ではない)WebAppでは、永続化のためリンクを張る必要があります。参考資料の13ページを参照して下さい。

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0