事前準備
- Visual Studio 2017をインストール
- https://visualstudio.microsoft.com/ja/free-developer-offers/
- 今回は、お試し利用の為、無償のVisual Studio Communityを利用する。
- インストーラにて、インストールする対象は以下の2つを選択。
- Docker for Windowsをインストール
- https://docs.docker.com/docker-for-windows/install/
- Download from Docker Storeを選択して、ダウンロードを行う。
- ダウンロードには、Docker Hubアカウントが必要となります。別途作成しておく必要あり。
インストールは、そこそこかかります。(5分程度)
- 念のため、一度Dockerを起動して、dockerコマンドを試しておく。[docker version]
docker が起動していない場合、docker server のバージョンが確認できないので、
を起動してサーバを起動する。
Visual Studio 2017でWindowsコンテナアプリ(asp.net)を開発。~チュートリアル程度~
-
新しいプロジェクトを作成する。
-
サンプルソースが既に出力されているので確認。
#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat
FROM microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1803 AS base
WORKDIR /app
EXPOSE 52763
EXPOSE 44372
FROM microsoft/dotnet:2.1-sdk-nanoserver-1803 AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
RUN dotnet restore "WebApplication1/WebApplication1.csproj"
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
. サンプルプロジェクトを利用して、Windowsコンテナを実行する。
- ツールバー - Dockerにて実行。
- 出力ウィンドウにDocker buildの実行ログが出力される。
- Docker buildが終わったら、Debugウィンドウに切り替わり、ブラウザが起動される。
- Windows PowerShellから、Dockerにビルドされている状態を確認できる。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\yamas> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
webapplication1 dev e942d5d8d889 56 seconds ago 493MB
microsoft/dotnet 2.1-aspnetcore-runtime-nanoserver-1803 861e30929ebc 4 days ago 493MB
PS C:\Users\yamas> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cb9ccfa664c webapplication1:dev "C:\\remote_debugger\\…" 5 minutes ago Up 4 minutes 44372/tcp, 52763/tcp, 0.0.0.0:52763->80/tcp, 0.0.0.0:44372->443/tcp dazzling_engelbart
PS C:\Users\yamas>
その他
- 他にもAzuleを利用すると、DevOpsを実行できる。
- Docker Registryを利用して、DockerImageも管理したい。