マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

手順1

以下の手順で検証・評価した。

環境

プロジェクトの作成

ASP.NET Core MVCアプリケーションの作成

プロジェクトの設定

手順1
手順2

インストレーション

手順3
手順4
手順5

デバッグ実行の準備

手順6
手順7
手順8
手順9
手順10
手順11

※ 後々、「from microsoft/aspnetcore」でググって、
コンパイル済みのASP.NET Coreアプリケーションを実行するための
公式のDocker Imageをダウンロードしていたことが解った。
https://hub.docker.com/r/microsoft/aspnetcore/

手順13
手順15

ブレークポイントを設定してデバッグ実行する。

手順16
手順17

手順2

より実践的な開発環境を構成する。

設定ファイル読み込み方法の変更

手順18
手順19

SQL Serverへの接続

ホスト側のDBで動作させようとしたが、ハマりどころが多かったのでメモ。

接続文字列

Windows ファイアウォール

SQL Server 構成マネージャー

Expressの場合は、SQL Server 構成マネージャーの設定も必要にある。

参考

変更点のスクショ

以下は、ASP.NET Core MVCのOpen棟梁テンプレートの変更点のスクショです。

手順20

手順3

初期設定

手順1と同じ。

Kitematicのインストール

Update-Package

Update-Packageを実行する。

ポートを固定する。

Program.csに以下の行を追加する。

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseUrls("http://*:5000/") // ← ココを追加
        .Build();

Dockerfileファイルの作成

Dockerfileファイル(Dockerfile)の作成

ASP.NET Core

既定のファイルを修正

FROM microsoft/aspnetcore:latest AS base
WORKDIR /app
ENV ASPNETCORE_URLS http://+:5000
EXPOSE 5000

FROM microsoft/aspnetcore-build:latest AS build
WORKDIR /src
COPY WebApplication1.sln ./
COPY WebApplication1/WebApplication1.csproj WebApplication1/
RUN dotnet restore -nowarn:msb3202,nu1503
COPY . .
WORKDIR /src/WebApplication1
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

nginx

FROM nginx:latest
COPY default.conf /etc/nginx/conf.d/default.conf

nginx設定ファイルの追加

nginxフォルダにdefault.confを作成する。

Docker Composeファイルの作成

Docker Composeファイル(docker-compose.yml)の作成

version: '3'
services:
  webapplication1:
    image: webapplication1
    build:
      context: .
      dockerfile: /WebApplication1/Dockerfile

例1

version: '3'
services:
  nginx-proxy:
    image: nginx-proxy
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - "8888:80"
    links:
      - webapplication1
  webapplication1:
    image: webapplication1
    build:
      context: ./WebApplication1
      dockerfile: Dockerfile

例2

version: '3'
services:
  nginx-proxy:
    image: nginx:latest
    ports:
      - "8888:80"
    links:
      - "webapplication1"
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
      - ./xxxx/publish/wwwroot:/usr/share/nginx/html/wwwroot
  webapplication1:
    image: webapplication1
    build:
      context: ./WebApplication1
      dockerfile: Dockerfile

補足

手順4

手順3に3つ目の、PostgreSQLのコンテナを追加してみる。

余談

PDBのタイプ

Docker側でライブラリのデバッグをする場合、ライブラリのPDBが、
「完全(full)」ではなくて、「ポータブル(portable)」である必要がある。

参考

Microsoft Docs

きよくらの備忘録

ONE-RUN

銀の光と碧い空


Tags: :.NET開発, :.NET Core, :Hyper-V, :仮想化

192.168.50.10


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS