ブログ

Armadillo Base OSでのコンテナの使い方

at_shinya.matsumoto
2024年10月7日 8時10分

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
 コンテナのバージョンに合わせる必要がある場合等で、ロールバック発生時ロールバック先の状態(前の状態)に戻る

コンテナの使い方の解説は以上となります。


開発手順・TIPS集のTOPに戻る