SSブログ

Raspberry Pi 3 Model B + Camera V2.1 docker クロス開発 [プログラミング]

前回は、ラズパイでdockerを動作させるところまで記録した。今回は、Windowsでラズパイのdockerコンテナを開発することに挑戦する。



肝はこれだと思う。

docker buildx build . -t pxosdk:0.1 --platform linux/arm64 -o type=docker,dest=- > myimage.tar

しかし、このtarをラズパイにコピーし、docker loadしてもエラーが起きてしまう。

 $ docker load < myimage.tar
Error processing tar file(exit status 1): archive/tar: invalid tar header

dest=-として標準出力にtarの中身を吐き出しているようだが、windowsでは標準エラーも同じところに出力してしまうので、tarにゴミが混じると推測した。そこで、destに直接ファイル名を指定することで解決した。

>docker buildx build . -t hello_rp:0.1 --platform linux/arm64 -o type=docker,dest=hello_rp.tar
[+] Building 2.8s (8/8) FINISHED                                                                                                                 docker-container:mybuilder
 => [internal] load build definition from Dockerfile                                                                                                                   0.0s
 => => transferring dockerfile: 101B                                                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/python:3.9-slim-buster                                                                                              2.3s
 => [auth] library/python:pull token for registry-1.docker.io                                                                                                          0.0s
 => [internal] load .dockerignore                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                        0.0s
 => [internal] load build context                                                                                                                                      0.0s
 => => transferring context: 25B                                                                                                                                       0.0s
 => [1/2] FROM docker.io/library/python:3.9-slim-buster@sha256:320a7a4250aba4249f458872adecf92eea88dc6abd2d76dc5c0f01cac9b53990                                        0.0s
 => => resolve docker.io/library/python:3.9-slim-buster@sha256:320a7a4250aba4249f458872adecf92eea88dc6abd2d76dc5c0f01cac9b53990                                        0.0s
 => CACHED [2/2] COPY a.py 1.py                                                                                                                                        0.0s
 => exporting to docker image format                                                                                                                                   0.4s
 => => exporting layers                                                                                                                                                0.0s
 => => exporting manifest sha256:17d61a2254f3fdfc7419608ac1a60a7e3b67c7a91e98ea6cc696a8d36bf5e2de                                                                      0.0s
 => => exporting config sha256:1fc37e61be263a22d171472e011a7a9e5d92625f12ae3b94a52c3052dcbeec0a                                                                        0.0s
 => => sending tarball

ラズパイに転送して、実行できることを確認した。


$ docker load < hello_rp.tar
Loaded image: hello_rp:0.1
$ docker run hello_rp:0.1
Hello, world!

ちなみに、おなじtarをwindowsにloadしても実行できた。

>docker load < hello_rp.tar
87bc36f72cf5: Loading layer [==================================================>]  25.92MB/25.92MB
dcbd2252343f: Loading layer [==================================================>]  2.647MB/2.647MB
6e4f4f2a1b40: Loading layer [==================================================>]  11.13MB/11.13MB
cd49bcee103a: Loading layer [==================================================>]     242B/242B
e563f3050990: Loading layer [==================================================>]  3.136MB/3.136MB
d107005ea74e: Loading layer [==================================================>]     128B/128B
Loaded image: hello_rp:0.1
>docker run hello_rp:0.1
WARNING: The requested image's platform (linux/arm64) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested
Hello, world!!
WARNINGが出ているので、ラズパイ用であることは間違いなさそうだが、動くのはなぜだろう?
pythonスクリプトが動いたので、次回は外部ライブラリが動くことを目指す。

nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Raspberry Pi 3 Model..|- ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。