2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows10+Visual Studio2017でWindowsコンテナアプリ(asp.net)を実行してみる

Posted at

事前準備

  1. Visual Studio 2017をインストール
  • https://visualstudio.microsoft.com/ja/free-developer-offers/
  • 今回は、お試し利用の為、無償のVisual Studio Communityを利用する。
    image.png
  • インストーラにて、インストールする対象は以下の2つを選択。
    • ASP.NET と Web 開発
    • .NET Core クロスプラットフォームの開発

      image.png
      image.png
      インストールは、そこそこかかります。(20~30分程度) 私のPCが低スペックなだけ・・・。

      image.png
  1. Docker for Windowsをインストール
    • https://docs.docker.com/docker-for-windows/install/
    • Download from Docker Storeを選択して、ダウンロードを行う。

      image.png
    • ダウンロードには、Docker Hubアカウントが必要となります。別途作成しておく必要あり。

      image.png

      インストールは、そこそこかかります。(5分程度)

      image.png
    • 念のため、一度Dockerを起動して、dockerコマンドを試しておく。[docker version]
      docker が起動していない場合、docker server のバージョンが確認できないので、
      image.pngを起動してサーバを起動する。

      image.png
      image.png

Visual Studio 2017でWindowsコンテナアプリ(asp.net)を開発。~チュートリアル程度~

  1. 新しいプロジェクトを作成する。

    1. [Visual C# - Web - ASP.NET Webアプリケーション] を選択する。
    2. [Webアプリケーション]を選択し[Dockerサポートを有効にする]をチェック。

      image.png
  2. サンプルソースが既に出力されているので確認。

    • ソリューションエクスプローラでは、Dockerfileと、ASP.NETのソースが出力されている事が確認できる。

      image.png
    • Dockerfileの中身( dotnetコマンドを利用して、ビルドを行っている。)
#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にて実行。

image.png
- 出力ウィンドウにDocker buildの実行ログが出力される。
- Docker buildが終わったら、Debugウィンドウに切り替わり、ブラウザが起動される。

image.png
- 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も管理したい。
2
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?