Линия 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 бит.