这几天计划打算上传微服务网关和微服务注册中心的docker镜像:Taurus.Gateway、Taurus.RegistryCenter

却发现 dockerhub在国内无法使用了。

目前使用阿里云个人免费版来上传镜像。

用.net core 8 打包本地测试正常后,上传阿里云,再从虚拟机测试下载运行时出现以下问题:

Failed to create CoreCLR, HRESULT: 0x80070008

经查,该问题有以下几种可能:

1、硬盘空间不足。

2、/tmp 文件不存在 或没有 /tmp 的写入权限。

3、.net core 8 使用了 docker 默认白名单之外的命令导致的。

经查是第3种情况引发的:

通过在 docker run 的时候添加参数,取消docker的seccomp调用白名单安全检查。

--security-opt seccomp=unconfined

或者在 docker-compose.yml 上添加参数:

security_opt:
    - seccomp=unconfined

添加以上参数后一切正常了。

补充:在 .NET 8 之前,配置为以只读方式运行的容器可能会失败并显示“Failed to create CoreCLR, HRESULT: 0x8007000E”。

若要解决此问题,请将 DOTNET_EnableDiagnostics 环境变量指定为 0(就在 ENTRYPOINT 步骤之前):

ENV DOTNET_EnableDiagnostics=0

 

posted on 2024-01-22 23:05  路过秋天  阅读(1473)  评论(0编辑  收藏  举报
路过秋天