ASP.NET Core アプリケーションを Docker で動かす

yo aspnet で作成したプロジェクトには Dockerfile が含まれているので、 ASP.NET Core アプリケーションを Docker で動かすこともできる。

ただ、2016/07/25 時点では Dockerfile に手直しが必要。 そのままだと docker build でコケる。 といっても apt-get-y オプションを追加するだけだけど。 修正した Dockerfile がこちら。

FROM microsoft/dotnet:latest

RUN apt-get update && apt-get install -y sqlite3 libsqlite3-dev

COPY . /app

WORKDIR /app

RUN ["dotnet", "restore"]

RUN ["dotnet", "build"]

RUN ["dotnet", "ef", "database", "update"]

EXPOSE 5000/tcp

ENTRYPOINT ["dotnet", "run", "--server.urls", "http://0.0.0.0:5000"]

Docker は Docker for Mac をインストールして使う。 純正の仮想環境 xhyve を使うので VirtualBox 不要なのが嬉しい。

docs.docker.com

Dockerfile が置いてある場所で

$ docker build -t tnakamura/helloaspnetcore:1.0 .

を実行しイメージを作成。

$ docker run -it -p 5000:5000 --name helloaspnetcore tnakamura/helloaspnetcore:1.0

を実行するとコンテナが立ち上がる。

Safarilocalhost:5000 にアクセスすると

f:id:griefworker:20160721231540p:plain

ASP.NET Core MVC おなじみの画面がちゃんと表示された。