#c# #.net #docker #digital-ocean-apps
#c# #.net #docker #digital-ocean-apps
Вопрос:
Я пытаюсь использовать DigitalOcean для размещения контейнера C # docker в docker hub (с платформой приложений)
[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
Контейнер отлично работает на моем компьютере.
Ответ №1:
Ваш образ создан для процессора Arm, а компьютер DigitalOcean, вероятно, является компьютером amd64.
Вы можете попробовать выполнить сборку для amd64 с помощью команды buildx. Что-то вроде
docker buildx build --platform linux/amd64 -t alyxw/alace-cs:amd64 .
Комментарии:
1. Странно, что OP может запускать эту штуку на своем компьютере. Может быть, они используют компьютер Apple с процессором M1?
2. У многих людей есть Macbook M1, так что это не так странно 🙂
3. Да, я на m1, большое вам спасибо!
4. @Alyx Рассмотрите возможность использования процессоров ARM64 и в облаке. Однажды я создал облачное приложение на .NET Core, работающее в общедоступном облаке, в моем случае виртуальные машины ARM, которые я в итоге использовал, были в 2,5 раза дешевле, чем традиционные виртуальные машины AMD64. Еще один приятный побочный эффект — вам не понадобится другая версия этих образов docker. Однако однопоточная производительность лучше на традиционных Xeon и Epic, так что это компромисс.
5. @Soonts вы знаете, поддерживает ли DigitalOcean ARM64? У меня есть куча кредитов с ними, поэтому я полон решимости заставить это работать