Armadillo Base OSでの基本的なコンテナの仕様について説明します。
コンテナの起動方法
コンテナはコンテナイメージから起動しますが、その際に一般的には下記の様なコマンドでコンテナを作成します。
コンテナ作成&起動例
[armadillo]# podman run --name=test \
--volume=/var/app/rollback/volumes/test:/vol_app \
--volume=/var/app/volumes/test:/vol_data \
--device=/dev/gpiochip5:/dev/gpiochip5 \
debian:bullseye-slim \
/bin/app.exe
《上記コマンドのオプションの説明》
※オプションの詳細説明は製品マニュアルを参照下さい。
1行目:コンテナ名をtestに設定
2行目:コンテナ内の/vol_appをOS側の/var/app/rollback/volumes/testにマウント(=アクセス権限を与える)
3行目:コンテナ内の/vol_dataをOS側の/var/app/volumes/testにマウント(=アクセス権限を与える)
4行目:コンテナ内の/dev/gpiochip5をOS側の/dev/gpiochip5にマウント(=アクセス権限を与える)
5行目:使用するコンテナイメージをdebian:bullseye-slimに指定
6行目:コンテナ起動時にコンテナ内で/bin/app.exeを実行(=アプリケーションの起動)
Armadillo Base OSでは上記の引数をコンテナのコンフィグファイル(※)として作成し、コンテナを起動します。
本書式はアットマークテクノ独自書式の為、詳細は製品マニュアルを参照下さい。
※VScodeではapp.conf、Armadillo Base OS上では/etc/atmark/containers/[コンテナ名].confを指します。
上記コマンドをapp.confで記載した場合
[armadillo]# cat /etc/atmark/containers/app.conf
#使用するコンテナイメージの指定
set_image localhost/debian:bullseye-slim
#コンテナ外とのファイル・ディレクトリ共有
add_volumes /var/app/rollback/volumes/test:/vol_app
add_volumes /var/app/volumes/test:/vol_data
add_devices /dev/gpiochip5:/dev/gpiochip5
#コンテナで実行するコマンド
set_command bash /vol_app/app.exe
上記の様に引数をapp.confで指定し、下記コマンドでコンテナを起動できます。
Armadillo起動時は自動で起動します。
コンフィグファイルでコンテナを作成&起動する例(.confは付けない)
[armadillo]# podman_start app
コンテナでのファイル保存について
Armadillo Base OSでは基本的にコンテナは読み取り専用で、RAM上に展開されます。
よって、コンテナの内部にファイルを作成した場合はRAM上に作成される為、電源OFFで消えてしまいます。
電源OFFにした後もファイルを残す場合はapp.confで指定しているeMMCに直接保存可能な /volumes ディレクトリを使用します。
app.confの/volumesのファイル・ディレクトリ共有設定(抜粋)
#コンテナ外とのファイル・ディレクトリ共有
add_volumes /var/app/rollback/volumes/app:/vol_app
add_volumes /var/app/volumes/app:/vol_data
例えば、1行目の add_volumes /var/app/rollback/volumes/app:/vol_app はコンテナで /vol_app に
アクセスするとArmadillo Base OS上(コンテナ外)の /var/app/rollback/volumes/app にアクセス出来ます。
ロールバック時にデータを保持する/しないによって下記使い分けが可能です。
・/var/app/volumes
コンテナのバージョンに影響しない場合等で、ロールバックの有無に関わらずファイルを保持する
・/var/app/rollback/volumes
コンテナのバージョンに合わせる必要がある場合等で、ロールバック発生時ロールバック先の状態(前の状態)に戻る
コンテナの使い方の解説は以上となります。