バグを説明する
$./build.sh container arm
または$./build.sh container arm64
間に、次のビルドエラーが発生しました。
**********************************
Create Docker container
**********************************
Error: No such container: edge-orchestration
Error: No such image: edge-orchestration:baobab
docker build --tag edge-orchestration:baobab --file /home/t25kim/work/edge-home-orchestration-go/GoMain/Dockerfile --build-arg PLATFORM=arm32v7 .
Sending build context to Docker daemon 301.4MB
Step 1/17 : ARG PLATFORM
Step 2/17 : FROM $PLATFORM/ubuntu:16.04
---> 8eedc387cb89
Step 3/17 : ENV TARGET_DIR=/edge-orchestration
---> Using cache
---> 5f0a61e388ca
Step 4/17 : ENV HTTP_PORT=56001
---> Using cache
---> b067bb7683b3
Step 5/17 : ENV MDNS_PORT=5353
---> Using cache
---> 075a5c1d1c28
Step 6/17 : ENV MNEDC_PORT=8000
---> Using cache
---> c2bc2afb2a0a
Step 7/17 : ENV MNEDC_BROADCAST_PORT=3333
---> Using cache
---> 5730d8bb2687
Step 8/17 : ENV ZEROCONF_PORT=42425
---> Using cache
---> b6b101e9d328
Step 9/17 : ENV APP_MAIN_DIR=GoMain
---> Using cache
---> b6d791035071
Step 10/17 : ENV APP_BIN_DIR=$APP_MAIN_DIR/bin
---> Using cache
---> e178739df475
Step 11/17 : ENV APP_NAME=edge-orchestration
---> Using cache
---> e75f9b70dc2c
Step 12/17 : RUN apt update
---> Running in 244a90de8ea7
standard_init_linux.go:211: exec user process caused "exec format error"
The command '/bin/sh -c apt update' returned a non-zero code: 1
Makefile:94: recipe for target 'build-container' failed
make: *** [build-container] Error 1
再現するには
動作を再現する手順:
$./build.sh container arm
または$./build.sh container arm64
結局、これは私がhttps://github.com/lf-edge/edge-home-orchestration-go/issues/127として提起したプラットフォーム拡張をサポートするための一般的なポリシーに関連してい@tdrozdovskyこれについて何か考えはありますか?
@MoonkiHong私はこの問題を再現しました。以前に書いたように(そしてコミットを作成しました)、各プラットフォームが独自のDockerfile
を作成するのは正しいでしょう(これで現在の問題が解決します)。
PSハードウェアプラットフォームごとに個別の構成を作成しないと、ビルドマシンが非常に複雑になります。
@MoonkiHong私はこの問題を再現しました。以前に書いたように(そしてコミットを作成しました)、各プラットフォームが独自の
Dockerfile
を作成するのは正しいでしょう(これで現在の問題が解決します)。
PSハードウェアプラットフォームごとに個別の構成を作成しないと、ビルドマシンが非常に複雑になります。
@tdrozdovsky理にかなっています。 あなたからのCoconut
リリース後の解像度の設計を検討するのはどうですか?
@MoonkiHong今日この問題を修正できます。 ココナッツはいつリリースされますか?
もちろん、新しいビルドシステムを後で提案することもできます(このタスクには時間がかかります)
@tdrozdovsky Coconut
リリースは、今月の10月末までです。 11月からこの問題の解決を始めましょう。 ありがとうございました。
@MoonkiHong今日はこれを実行して、Coconutのリリースでこの問題が発生しないようにします。 また、今日は、最後のコミットで発生したドキュメントの不正確さをもう1つ解消します。 これらは異なるコミットになります
@MoonkiHong今日はこれを実行して、Coconutのリリースでこの問題が発生しないようにします。 また、今日は、最後のコミットで発生したドキュメントの不正確さをもう1つ解消します。 これらは異なるコミットになります
@tdrozdovskyあなたの情熱的な貢献に本当に感謝します!
@tdrozdovskyチェッカーのためだけに、コードを変更せずにarm
のパッケージを正常にビルドできます。
https://www.stereolabs.com/docs/docker/building-arm-container-on-x86/ 。これは、ビルド環境のリビジョンを適用することを意味します。 それでは、関連するドキュメントでこのスクリプトを適切にガイドするのはどうですか? (個別のビルドシステム設計の代わりに)
@tdrozdovskyチェッカーのためだけに、コードを変更せずに
arm
のパッケージを正常にビルドできます。
https://www.stereolabs.com/docs/docker/building-arm-container-on-x86/ 。これは、ビルド環境のリビジョンを適用することを意味します。 それでは、関連するドキュメントでこのスクリプトを適切にガイドするのはどうですか? (個別のビルドシステム設計の代わりに)
@ t25kimこの問題について、もう1つのすばらしい提案と評価をありがとうございます。 (ガイダンスによるセルフビルド検証も含む)
@MoonkiHongこの問題を修正するための変更を準備しましたが、それでもテストする必要があります。 すべての準備ができたら、PRを作成します。
最も参考になるコメント
@MoonkiHong私はこの問題を再現しました。以前に書いたように(そしてコミットを作成しました)、各プラットフォームが独自の
Dockerfile
を作成するのは正しいでしょう(これで現在の問題が解決します)。PSハードウェアプラットフォームごとに個別の構成を作成しないと、ビルドマシンが非常に複雑になります。