NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

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イメージを作成して起動すれば良さそうです。

f:id:nextscape_blog:20210910004720p:plain

ではやってみましょう。

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

f:id:nextscape_blog:20210914210018p:plain

ソースをCloneします。

f:id:nextscape_blog:20210914210051p:plain

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

f:id:nextscape_blog:20210914210121p:plain

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

f:id:nextscape_blog:20210914210149p:plain

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

f:id:nextscape_blog:20210914210212p:plain

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

f:id:nextscape_blog:20210910004753p:plain

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

f:id:nextscape_blog:20210914210311p:plain

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

f:id:nextscape_blog:20210914210348p:plain
f:id:nextscape_blog:20210910004818p:plain

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

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