我正在尝试使用 DigitalOcean 在 docker hub 上托管一个 C# docker 容器(使用 Apps 平台)
[2021-12-08 23:24:04] starting container: starting non-root container [dotnet Alace.cs.dll]: creating process: failed to load /usr/bin/dotnet: exec format error
容器在我的计算机上运行得非常好。
您的映像是为 Arm 处理器构建的,而 DigitalOcean 机器可能是 amd64 机器。
您可以尝试使用 buildx 命令构建 amd64。类似的东西
docker buildx build --platform linux/amd64 -t alyxw/alace-cs:amd64 .
如果您使用 dotnet 8,则只能将基本映像更改为
mcr.microsoft.com/dotnet/aspnet:8.0-bookworm-slim-amd64
你可以进行正常的 docker 构建。
并且在构建 docker 镜像时无需使用“--platform linux/amd64”参数