.NET8のアプリ起動に失敗
概要
.NET8で実装したアプリのDockerContainerの起動時に下記のエラーが発生し失敗する。
Failed to create CoreCLR, HRESULT: 0x80070008
発生環境 (参考)
今回事象を確認した環境は下記の通りだが、この環境に限ったものではないので
同様の事象が発生した場合、当記事の対応で解消される可能性が高い
- OS: CentOS Linux release 7.9.2009 (Core)
- Docker: 20.10.3
- DockerCompose: 1.28.4
対応方法
-
seccomp=unconfined
を指定docker-compose.ymlの対象サービスのオプションで下記を指定し、再構築
services: : serviceName: : security_opt: - seccomp=unconfined
- 詳細
- LinuxカーネルのSeccomp機能によってDockerContainer内から利用可能なシステムコールを一部制限している
- この制限によってエラーが発生している場合、この対応で起動可能となる
- 詳細
-
Dockerのバージョンを上げる
- Dockerバージョンが20系の場合に同様の事象が報告されている
- 24系以上にバージョンアップすることで解消される場合があるとのこと (未確認)
-
OSバージョンアップ
- 古いOSの場合に同様の事象が報告されている
- OSをバージョンアップすることで解消される場合があるとのこと (未確認)