Estou com dificuldades para compilar um repositório com o Docker. Ainda não fiz nenhuma alteração no código-fonte e estou apenas tentando compilar o master. Mas estou com dificuldades para compilá-lo de acordo com as instruções no repositório: NickelMenu
De acordo com as instruções, o código-fonte deve ser compilado com o docker com:
docker run --volume="$PWD:$PWD" --user="$(id --user):$(id --group)" --workdir="$PWD" --env=HOME --entrypoint=make --rm -it ghcr.io/pgaskin/nickeltc:1.0 all koboroot
Primeiro, estou recebendo um aviso (e erro) dizendo: AVISO: A plataforma da imagem solicitada (linux/amd64) não corresponde à plataforma do host detectada (linux/arm64/v8) e nenhuma plataforma específica foi solicitada exec /usr/bin/make: erro de formato exec
Então eu pesquisei e descobri que preciso especificar a plataforma se tiver uma arquitetura de plataforma diferente no host. Estou tentando executar isso em um raspi (linux/arm64/v8?), mas o host é linux/amd64 para image ghcr.io/pgaskin/nickeltc:1.0
. Então eu tentei:
sudo DOCKER_DEFAULT_PLATFORM="linux/amd64" docker run --volume="$PWD:$PWD" --user="$(id --user):$(id --group)" --workdir="$PWD" --env=HOME --entrypoint=make --rm -it ghcr.io/pgaskin/nickeltc:1.0 all koboroot
O aviso foi removido, mas ainda recebo o erro: exec /usr/bin/make: erro de formato exec
Eu apreciaria se alguém pudesse me dar algumas instruções, já que estou sem ideias. Estou usando o Docker versão 27.5.1, build 9f9e405
Obrigado!
O problema é que seu hardware (onde você executa o Docker) é baseado em ARM, enquanto a imagem do Docker que você está usando é baseada em AMD64 (também conhecido como "Intel", ou "x86_64").
Você terá que criar sua própria imagem, o que é explicado aqui , mas observe também que "esta cadeia de ferramentas cruzadas só foi testada em x86_64" .