matarillo.com

The best days are ahead of us.

3 DockerでASP.NET 5 Sampleを動かす

2015-01-17 23:07:15

前提

この記事は2015/1/17に書きました。 執筆当時のASP.NET 5のバージョンはv1.0.0-beta2です。 執筆当時のMonoのバージョンは3.10.0、libuvのバージョンは1.1.0です。 執筆当時のDockerHub ベースイメージのバージョンは microsoft/aspnet:1.0.0-beta2です。

OSはLinux Mint 17.1 Rebecca MATE (x64)という、Ubuntu 14.04 Trusty Tahrの派生版を使いました。 Docker (lxc-docker) のバージョンは 1.4 です。

ASP.NET サンプルアプリケーションのソースコード取得

GitHubのaspnet/Homeリポジトリを取得します。

$ git clone git://github.com/aspnet/Home.git

Dockerのインストール

デフォルトaptリポジトリに含まれているDocker (docker.io) のバージョンは古いので、最新版を入れるにはDockerプロジェクトのaptリポジトリを参照する必要があります。

まず、DockerプロジェクトのGPG公開鍵を追加します。

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

次に、/etc/apt/sources.list.d にエントリを追加します。

$ sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

追加できたら、apt-getでlxc-dockerをインストールします。

$ sudo apt-get update
$ sudo apt-get install lxc-docker

Dockerイメージの作成

aspnet/Homeリポジトリをcloneしたディレクトリに Dockerfile というファイルを作成します。

FROM microsoft/aspnet

ADD ./Home/samples /app/
WORKDIR /app/HelloWeb
RUN kpm restore
EXPOSE 5004
ENTRYPOINT ["k", "kestrel"]

そして、ビルドしてイメージを作成します。リポジトリ名やタグは好みで構いません。この記事では、リポジトリ名 yourname/aspnet にしました。

$ docker build -t yourname/aspnet .

末尾にドット(.)を指定することで、カレントディレクトリのDockerfileを使ってイメージが作られます。

Dockerイメージの起動

作成したDockerイメージを起動することで、サンプルアプリケーションがビルドされて起動します。

$ docker run -d -t -p 5004:5004 yourname/aspnet

動作を確認する際は、ブラウザなどで http://localhost:5004 にアクセスしてみてください。

動作確認スクリーンショット


インデックスへ戻る