Azure + Linux + Docker + ASP.NET5 !!

こんにちは、上坂(@takashiuesaka)です。

前回、Azure上のLinuxVM上でDockerを動かすことに成功しました。
今回はアプリをDockerコンテナで起動してみたいと思います。やはりどうせ動かすならASP.NET5を動かしたいですよね。
簡単に実現すべく、Github上でMicrosoftが公開しているサンプルをDockerで動かしたいと思います。

元となるサンプルはここです。

https://github.com/aspnet/Home

samples/1.0.0-beta8/HelloMvcフォルダの中を見てみてください。なんとDockerfileが既に用意されているではありませんか。
これを元にDockerイメージを作成して起動すれば良さそうです。

github上のDockerfile

ではやってみましょう。


前回作成したLinuxVMにSSHで接続したら、Gitをインストールします。ソースをCloneするためです。

sudo apt-get install git

ソースをCloneします。

sudo git clone https://github.com/aspnet/Home.git

サンプルにはコンソールアプリとほぼ空っぽのテンプレートと、HelloWorld的なASP.NET MVCアプリの3つがあります。
今回はASP.NET MVCをDockerコンテナで起動してみます。Dockerfileの場所まで移動します。

cd Home/samples/1.0.0-beta8/HelloMvc

Dockerイメージを作成します。リポジトリ名をaspnet5/mvc、タグ名を1.0.0-beta8としました。
最後の「.」がないと動かないので気を付けてください。これはDockerfileの場所が今の場所で同じであることを意味します。

docker build -t aspnet5/mvc:1.0.0-beta8 .

しばらく待ちます・・・。初回は時間かかるのです。無事にイメージができたかを確認しましょう。

docker images

こんな感じで表示されるはずです。

docker images結果

それではいよいよ、Dockerを起動します。

docker run -it -p 80:5004 aspnet5/mvc:1.0.0-beta8

ホストの80番ポートを、コンテナの5004番ポートに紐づけています。これはDockerfileの中で5004番をListenするように設定が入っているためです。
では、ブラウザから確認しましょう。URLは次のようになります。

http://<cloudservicename>.cloudapp.net

asp.net5起動結果

無事に表示されました!
もし画面が表示されない場合はLinuxVMの80番Portが開いていない可能性があります。Azure管理ポータルからエンドポイントメニューで80番を開けてください。

ASP.NET5を動かす環境を作るのは結構面倒なのですが、Dockerを使うと非常に簡単でしたね。


ネクストスケープ企業サイトへ

NEXTSCAPE

検索する

タグ

メタデータ

投稿のRSS