php エディター Apple は、Docker を使用するときに、「Docker イメージが golang 実行可能ファイルを実行します: exec /usr/local/go/bin/go: exec format error」という一般的なエラーに遭遇することがあります。このエラーは通常、イメージ内の golang 実行可能ファイルが正しく実行されていないことが原因で発生します。この問題を解決するには、golang 実行可能ファイルの権限を確認する、実行可能ファイルにアクセスできるかどうかを確認する、実行可能ファイルへのパスが正しいかどうかを確認するなど、さまざまな方法があります。この問題を解決すると、golang 実行可能ファイルが Docker で正しく実行されるようになり、コード開発の効率と安定性が向上します。
go
実行可能ファイルを別のコンピュータで実行する場合、そのターゲット プラットフォームを指定する必要があることを理解しました。 m1 チップを使用して Apple マシン上に Docker イメージを構築しています:
ドッカーファイル
リーリー出力をビルドした後にコンテナがチェックされるため、これは機能するようです
リーリーしかし、docker-compose
を使用して Linux サーバー上でイメージを起動すると、次のエラーが発生します: exec /usr/local/go/bin/go: exec format error
docker-compose.yml
リーリー私は docker についてはかなり初心者なので、ここで非常に明白な何かが欠けていると思います。
まず、amd64 バイナリが正常にビルドされたことが確認できたので、これは go
の問題ではありません。
イメージを (amd64 Linux システム上で) 実行すると、報告されたのと同じエラーは発生しません。この docker-compose.yaml
:
docker-compose up を実行すると、次のように表示されます:
リーリー
workdir /app を設定しているため、
app がイメージ内の現在の作業ディレクトリになりますが、バイナリは
/foo## としてインストールされているために発生します。 #。必要ですか:
を変更します:
リーリー
###または...###
バイナリを
/app
これらの変更を加えると、イメージは期待どおりに動作します。
以上がDocker イメージの実行 golang 実行可能ファイル: exec /usr/local/go/bin/go: exec 形式エラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。