Как создать образ Docker для устройства ARM? - PullRequest
0 голосов
/ 28 октября 2019

Я замечаю exec user process caused "exec format error", когда пытаюсь запустить образ Docker на Raspberry Pi 4.

Сначала я изумлен, что вытягивается образ Docker, который не запускается на платформе, чтобы начатьс участием. Тем не менее, я стремлюсь заставить это работать, но я не знаю, как.

Вот проект: https://github.com/kaihendry/sla Как я могу создать ARM-совместимые образы?

1 Ответ

2 голосов
/ 28 октября 2019

Линия FROM golang выведет соответствующую архитектуру;у них есть arm v6 (более ранняя версия pi / pi 0, запущенная для raspbian) + arm v7 (более ранняя версия pi, запущенная для raspbian) и arm64 (более новая версия pi, работающая под управлением ubuntu) как часть многоархивного докера image https://hub.docker.com/_/golang?tab=tags

Ваша проблема с ошибкой формата exec (т. Е. Это неправильный двоичный формат) выглядит просто как строка https://github.com/kaihendry/sla/blob/a22d983340f3df794696e5c8e31cf3b89f7edd89/Dockerfile#L14, где ваша архитектура не подходит для числа пи;это должен быть GOARCH = arm (32-битный, не-Ubuntu) или GOARCH = arm64 (Ubuntu), дополнительно для 32-битного ARM (v6 и v7) вам также необходимо указать GOARM = 6 или GOARM = 7 на https://github.com/golang/go/wiki/GoArm

Я проверил ваш код со свопом на GOARCH = arm64 (и GOARM не требуется) и заставил его собираться и запускаться на моем запущенном u3ntu pi3b +.

Обратите внимание на будущее, я подозреваю, что мой ответможет измениться, если / когда raspbian переключится на 64 бит.

...