Armadillo Base OSでの基本的なコンテナの仕様について説明します。
コンテナの起動方法
コンテナはコンテナイメージから起動しますが、その際に一般的には下記コマンドでコンテナを作成します。
コンテナ作成&起動例
[armadillo]# podman run --name=container_name debian:bullseye-slim /bin/app.exe
Armadillo Base OSでは上記の引数をコンテナのコンフィグファイル(※)を使用して起動します。
以後app.confとして説明します。
※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/app:/vol_app
add_volumes /var/app/volumes/app:/vol_data
add_volumes /sys:/sys
add_devices /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
コンテナのバージョンに合わせる必要がある場合等で、ロールバック発生時ロールバック先の状態(前の状態)に戻る
コンテナの使い方の解説は以上となります。