Ubuntu 20.04 LTSのdocker-composeでASP.NET Coreを動かす
Ubuntu 20.04 LTS
.NET Core 5.0
でdocker-composeするまでの覚え書き。
Visual StudioでDockerfileは作らない方針で、ビルドした実行資産を格納して、docker-composeで実行する。
■ 手順
- ディレクトリを作成して移動する。(場所はお好みでOK)
mkdir myapp cd myapp
- appフォルダを作成し実行資産を格納する。
app ├wwwroot ├appsettings.json ... └Myapp.dll
- docker-compose.ymlを作成する。
vi docker-compose.yml
version: '3.5' services: myapp: image: mcr.microsoft.com/dotnet/aspnet:5.0 container_name: myapp restart: always ports: - "5010:80" environment: TZ: "Asia/Tokyo" ASPNETCORE_CONTENTROOT: "/app" ASPNETCORE_ENVIRONMENT: "Production" # "Production" or "Development" Database__db: "server=myappdb;port=3306;database=myapp;user id=myapp;password=insecure;sslmode=none;" volumes: - "./app:/app" - "./font:/usr/share/fonts/opentype/myapp" entrypoint: ["dotnet", "/app/Myapp.dll"] mariadb: image: mariadb:10.5 container_name: myappdb restart: unless-stopped ports: - "5011:3306" command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci volumes: - "./database:/var/lib/mysql" environment: MYSQL_ROOT_PASSWORD: please_change MYSQL_DATABASE: myapp MYSQL_USER: myapp MYSQL_PASSWORD: insecure
設定値補足
- TZ: “Asia/Tokyo”
タイムゾーン指定する場合。 - Database__db: “server=myappdb;port=3306;database=myapp;user id=myapp;password=insecure;sslmode=none;”
appsettings.jsonの設定値を上書きすることができる。
下記のような設定を「__」で連結した値を使う。
{ "Database": { "db": "" } }
- – “./font:/usr/share/fonts/opentype/myapp”
特定のフォントを使用する場合。appフォルダと同じ階層にfontフォルダを作成してフォントファイルを置いておく。
- 起動する。
docker-compose up -d
ホスト名+ポート5010でWEBサイトに接続できる。
またmariadbはホスト名+ポート5011で接続できる。
これでフロントにHaproxyやNginxを置いてやることで、サーバー公開できる。