2021年1月3日日曜日

.NET5 ASP.NET Core+Dockerアプリケーション開発のエラーメモ

 参考ページ
https://docs.microsoft.com/ja-jp/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-5.0

エラー集
■1 証明書が無くてHTTPSが使用できないらしい。

crit: Microsoft.AspNetCore.Server.Kestrel[0]

      Unable to start Kestrel.

      System.InvalidOperationException: Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date.

      To generate a developer certificate run 'dotnet dev-certs https'. To trust the certificate (Windows and macOS only) run 'dotnet dev-certs https --trust'.

      For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.

対応は、
dotnet dev-certs https'
コマンドで、証明書を作成する。

■2 Error An error occurred
Containers feature is disabled. Enable it using the PowerShell script (in an administrative PowerShell) and restart your computer before using Docker Desktop: 

対応は、PowerShellで
Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All
を実行して対応。気をつけるのは、管理者権限のPowerShellで実行すること。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Enable-WindowsOptionalFeature: Microsoft-Hyper-V;Containers                               

あと、実行後にWindowsの再起動が必要になります。

■3 アプリケーションを更新してPublishするとエラーが発生する。
エラーメッセージ
crit: Microsoft.AspNetCore.Server.Kestrel[0]

      Unable to start Kestrel.
      System.IO.IOException: Failed to bind to address http://[::1]:5000: address already in use.
       ---> Microsoft.AspNetCore.Connections.AddressInUseException: 通常、各ソケット アドレスに対してプロトコル、ネット ワーク アドレス、またはポートのどれか 1 つのみを使用できます。
       ---> System.Net.Sockets.SocketException (10048): 通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。

対応は、Linuxでもサービスを一時停止して入れ変える必要があります。

一度、コンテナを停止して再度、入れ替えを行うとアプリケーションが変わりました。
dotnet published/aspnetapp.dll

■4 メモリ不足でDockerが起動できない。
エラーメッセージ
You are trying to start Docker Desktop but you don't have enough memory.
Free some memory or change your settings.

WSL2モードでの管理をやめてリソースをDocker Desktopで管理しようとしたら発生しました。

対応は、Docker Desktopの設定(Settings)⇒Resources⇒tADVANCEDでMemoryを2GBから1GBへ減らす。


いろいろと動かしてアプリを配置したりして試していきます。

0 件のコメント:

コメントを投稿