Не удается запустить контейнер в Apple M1 после создания изображения в Windows

Я хочу создать образ на докере с моей пользовательской базой данных. По сути, загрузите образ Azure-Sql-Edge в докер, восстановите на нем базу данных, скомпонуйте его в образ и загрузите для всеобщего использования.

Я попытался автоматизировать это на С# и дошел до этого момента:

  • Извлеките образ Azure-Sql-Edge из общедоступного репозитория.
  • Создайте контейнер с изображением
  • Подключиться к нему и восстановить мою базу данных
  • Скомпонуйте контейнер обратно в изображение
  • Отправьте его в репозиторий

Все это успешно. Моя проблема заключается в следующем:

Я специально выбрал azure-sql-edge, потому что его можно запускать на процессорах Apple M1. Я использую Windows, но у некоторых других людей может не быть Windows, поэтому я хотел, чтобы образ мог работать и на процессоре Apple M1.

Ванильный образ от Microsoft Azure-Sql-Edge работает как в Windows (например, Intel x64), так и в M1. После того, как я создам свой контейнер (с моей машины Windows), новый образ может работать на машине Apple M1.

Есть ли что-то, что нужно указать во время COMPOSE? Например, свойство или что-то, чтобы явно сказать, что это для ЛЮБОГО процессора?

Нужна ли яблочная машина, чтобы можно было составить образ и для M1, или...


person Thodoris Koskinopoulos    schedule 17.05.2021    source источник
comment
stackoverflow.com/questions/67458621/   -  person OneCricketeer    schedule 17.05.2021
comment
stackoverflow.com/questions/65456814/   -  person OneCricketeer    schedule 17.05.2021
comment
@OneCricketeer Я только что видел эти ответы, но не понимаю. Я использую образ, который предположительно для обоих процессоров. При извлечении образа вы получаете один и тот же образ, который работает на обоих (если только он не читает спецификации (процессор и т. д.) и не извлекает совместимый?).   -  person Thodoris Koskinopoulos    schedule 17.05.2021
comment
Как Microsoft удалось создать образ, который работает на x64 и M1, но когда я его собираю, он становится специфичным для платформы. Нужно ли указывать модель ЦП во время создания?   -  person Thodoris Koskinopoulos    schedule 17.05.2021
comment
Образ amd64 не может работать на чипе arm64 без эмуляции, что показывает флаг platform во второй ссылке.   -  person OneCricketeer    schedule 18.05.2021
comment
Я попробую и вернусь. Спасибо   -  person Thodoris Koskinopoulos    schedule 20.05.2021