t_matsuyama
2025年5月14日 14時30分
==========
製品:A6E cat.M1 Di8+Ai4
Debian/ABOSバージョン:v3.21.3-at7
カーネルバージョン:
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
お世話になっております。
(ライブラリのインストールやpodman・dockerに不慣れなため、誤解があればご指摘ください)
pythonのライブラリをコンテナ内のアプリケーションで使用するために
https://armadillo.atmark-techno.com/forum/armadillo/14616
を参考にコンテナ内へインストールしようとしています。
質問は2点です。
①今回、疎通確認用にpythonのpingsをインストールしようとしていますが、
Alpine Linux のパッケージ(apk)が提供されていないようです。
Alpine Linuxで提供されていないライブラリは使えるのでしょうか?
使えるのであれば、インストール方法を教えて頂きたく。
(過去にも似たようなことがあったため、本件のみであれば
https://pkgs.alpinelinux.org/package/v3.18/main/x86/iputils-ping
を代替に使えそうですが、後学のために...)
②Dockerfileから、ライブラリをインストールすることができるのでしょうか?
requirements.txt?のようなものにライブラリを記載してインストールできると
楽な気がするので。教えて頂けるとありがたいです。
以上、よろしくお願い致します。
at_ohsawa
2025年5月14日 17時47分
まず、単純に手順だけ書くとVSCodeで開発を初めて
ABOSDEプラグインからA6Eのプロジェクトにある
「新しいPythonのプロジェクト」でプロジェクトを作ることができます。
できたプロジェクトはVSCodeの新しい画面で開いた状態になっているので
app/srcの下にrequirements.txtにそのままpings
と一行掛けばOKです。同時に生成されるmain.pyでimportできるコンテナを
生成することができます。
Armadilloでの実行や、リリース用のコンテナ化してのビルドも同様に
VSCode上のABOSDEプラグインのメニューから完結することができます。
製品マニュアル3章の開発編を長いですが、一通り読まれるとABOSDEの
使い方がわかると思います。
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
先のフォーラムの回答に言及すると、
Dockerfileを直接触るのは基本的には不要で、pythonであれば上記の
requirements.txtで十分なことが多いです。
apkの有無については、Armadillo Base OSはalpine linuxですが、
コンテナはalpine linuxである必要はありません。上の手順で生成される
pythonプロジェクトで使うコンテナはdebian bullseye(のslim版)になっています。
そして、pythonのライブラリが必ずしもdebianやalpineのOS側の
パッケージマネジメントシステム(apkやapt/deb)で供給されるとは限らず、
pip側で導入が必要な場合も多いです。
ABOSDEでコンテナとしてアプリケーションを統一して管理している限りは
requirements.txtでpip経由で必要なものを追加して、それで問題がある場合に
他の手段を使うと良いと思います。その時、解決できないようであれば
またフォーラムで聞いてください。
OS側のパッケージマネジメントシステムの供給するpythonのライブラリと
pipの混在は理解して実行しないと破壊的な状態になるため、
(uvやvenv等のpython側のpip環境の仮想化も含め)
まずは、1つの方法でパッケージを揃えてみてください。