Go изначально поддерживает кросс-компиляцию. Достаточно задать переменные окружения GOOS (целевая ОС) и GOARCH (целевая архитектура):
# Linux amd64 (серверы, Docker)
GOOS=linux GOARCH=amd64 go build -o myapp
# Linux ARM64 (AWS Graviton, Raspberry Pi)
GOOS=linux GOARCH=arm64 go build -o myapp
# Windows
GOOS=windows GOARCH=amd64 go build -o myapp.exe
Если в проекте есть CGo-зависимости, нужно либо CGO_ENABLED=0 (если можно обойтись без CGo), либо кросс-компилятор для целевой платформы.
Посмотреть все поддерживаемые пары: go tool dist list