Linuxでdocker-containerを実行しようとしています。ビルド中に、次のコマンドを実行するとエラーが発生します。
Sudo docker-compose -f docker-compose.yml up --build
docker-composeは次のメッセージを表示します。
Step 10/19 : RUN dotnet restore "test/test.csproj"
---> Running in ea65364853f3
standard_init_linux.go:211: exec user process caused "exec format error"
ERROR: Service 'test' failed to build: The command '/bin/sh -c dotnet restore "test/test.csproj"' returned a non-zero code: 1
詳細なエラーメッセージを表示する方法はありますか?
エラーはビルドプロセス中に発生しています。 docker-compose build
を実行すると、同じ結果が表示されます。
このエラー:
standard_init_linux.go:211: exec user process caused "exec format error"
dockerはdotnet
実行可能ファイルをコンテナー内で実行しようとしましたが、イメージ内のdotnet
バイナリーがコンテナー内の環境と互換性がないため、開始できませんでした。たぶん、それは別のアーキテクチャ、またはそのようなもののためにコンパイルされていますか?残りのビルドプロセス(ステップ1〜9)を表示すると、おそらく問題を見つけることができます。
RUN
コマンドは次のように機能すると言われているため、イメージを取得し、コンテナーContainerAを作成し、このコンテナーでコマンドを実行して、新しいイメージImageBを生成します。 ContainerAを削除し、ContainerBを作成します...これで1つの実行で終了するため、containerXを残しておく必要があります。したがって、次のようなログが表示されます。
docker build -t <yourname>:<tag>
エラー時に終了
docker logs <yourname>
詳細なエラーログは次のとおりです。