マイクロソフト系技術情報 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

余談:PDBのタイプ

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

手順2

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

手順18
手順19

SQL Serverへの接続

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

接続文字列

Windows ファイアウォール

SQL Server 構成マネージャー

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

参考

変更点のスクショ

以下は、ASP.NET Core MVCのOpen棟梁テンプレートの変更点のスクショです。
(設定ファイル読み込み方法に「埋め込まれたリソース」を採用した場合)

手順20

手順3

初期設定

手順1と同じ。

コンテナの管理

複数のコンテナを扱うので、そろそろ管理コマンド・ツールを理解する。

dockerコマンド

Kitematicのインストール

Update-Package

Update-Packageを実行する。

Kestrelのポートを固定する。

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

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseUrls("http://0.0.0.0:5000/") // ← ココを追加 localhost や 127.0.0.1 だとダメ。
        .Build();

Dockerfileファイルの編集

Dockerfileファイル(Dockerfile)の編集

ASP.NET Coreコンテナ

既定のDockerfileファイルを修正

nginxコンテナ

nginxフォルダにDockerfileファイルを作成する。
※ nginxフォルダは、Docker Composeファイル(docker-compose.yml)と同じ階層に作成。

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

nginx設定ファイルの追加

nginxフォルダにdefault.confを作成する。
※ nginxフォルダは、Docker Composeファイル(docker-compose.yml)と同じ階層に作成。

既定値

server {
    listen        80;
    server_name   example.com *.example.com;
    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $http_host;
        proxy_cache_bypass $http_upgrade;
    }
}

変更後

server {
    listen        80;
    server_name   localhost;
    location / {
        proxy_pass         http://xxx.xxx.xxx.xxx:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $http_host;
        proxy_cache_bypass $http_upgrade;
    }
}

※ xxx.xxx.xxx.xxxには、

Docker Composeファイルの編集

Docker Composeファイル(docker-compose.yml)の編集

既定値

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

変更後

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
    ports:
      - "5000:5000"

補足

Dockerfile

Dockerfileには様々な設定が可能。

Docker Composeファイル

手順4

概要

手順3

コンテナを追加してみる。

永続化

がある。

を採用する。

構成図

構成図

初期設定

手順3と同じ。

Redis

構築

接続確認

WSLから、redis-cliをインストールして確認する。

データ・アクセスの実装

テスト

PostgreSQL

構築

接続確認

WSLから、postgresql-clientをインストールして確認する。

データ・アクセスの実装

テスト

参考

Microsoft Docs

きよくらの備忘録

ONE-RUN

銀の光と碧い空

データストア・コンテナ関連

Redis

外部から接続する場合、redis.confを修正する必要がある模様。

PostgreSQL


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


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