本ブログは作成したコンテナを自動起動させる方法と、その設定に必要なconfファイルについて記載しております。
こちらのconfファイルの書式も使用可能ですがバージョンが古い為、最新情報は改訂版か製品マニュアルをご参照下さい。
はじめに
Armadillo-IoT G4はeMMC(ストレージ)への書き込みを最小限にする観点から、tmpfs(メモリ上に作成するファイルシステム)に保存する設定にしております。メモリ上のファイルは電源を一度落とすと消えてしまう為、開発時はeMMCへ書き込む様に下記の様に設定を変更します。
ファイルをeMMCへ保存に変更するコマンド # podman_switch_storage --disk ファイルをtmpfs(メモリ)へ保存に変更するコマンド # podman_switch_storage --tmpfs ファイルの保存先設定を確認するコマンド(下記はeMMCへ保存する設定) # podman_switch_storage --status Currently in disk mode, run with --tmpfs to switch
以下、eMMCへ保存する事を前提で記載致します。
コンテナ自動起動の設定
今回使用するコンテナはArmadillo-IoT G4:USBカメラの画像をmjpg-streamerを使って、ネットワーク経由でPCのWebブラウザで見る方法で作成したコンテナを使用します。
下記の順に進めていきます。
1.作成したコンテナのイメージを作成
2.confファイルを作成
3.動作確認
1.作成したコンテナのイメージを作成
作成したコンテナ(本説明ではmjpg_stream)を元にイメージファイルを作成します。
ここではイメージ名をat_mjpg_stream、タグをv1.0.0と付けています。
(dockerfileでビルドしたイメージでも同じ動作する事が確認出来ていれば問題ありません)
コンテナからイメージファイルを作成 # podman commit mjpg_stream mjpg_stream:v1.0.0 作成したイメージファイルを確認 # podman images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/debian bullseye 5852ca45f7bf Less than a second ago 123 MB localhost/at_mjpg_stream v1.0.0 745f41934003 About a minute ago 726 MB ←今回作成したイメージ
2.confファイルを作成
ホスト側の/etc/atmark/containers/ディレクトリ下に[コンテナ名].confという設定ファイルを作成します。この設定ファイルの内容を元にArmadillo-IoT G4の起動時にファイル名と同名のコンテナを自動作成~起動します。
(同名のコンテナがある場合、上書きされます)
ここではコンテナ作成時とmjpg-streamer起動時の設定をconfファイルに記述します。
また、今回は自動起動のコンテナとイメージ作成元のコンテナを分ける為、名前をmjpg_stream_autoに変更します。
前回コンテナ作成時のコマンド # podman run -it --name=mjpg_stream \ --publish=9000:8080 \ --device=/dev/video3:/dev/video3 \ docker.io/debian:bullseye \ /bin/bash mjpg-streamer起動時のコマンド # mjpg_streamer \ -i "/usr/local/lib/mjpg-streamer/input_uvc.so --device /dev/video3 --yuv --resolution VGA --fps 30" \ -o "/usr/local/lib/mjpg-streamer/output_http.so --www /usr/local/share/mjpg-streamer/www"
上記設定を元にvi等でmjpg_stream_auto.confファイルを作成します。
# cat /etc/atmark/containers/mjpg_stream_auto.conf image="localhost/at_mjpg_stream:v1.0.0" devices="/dev/video3:/dev/video3" readonly=false ports="9000:8080" set_command mjpg_streamer \ -i "/usr/local/lib/mjpg-streamer/input_uvc.so --device /dev/video3 --yuv --resolution VGA --fps 30" \ -o "/usr/local/lib/mjpg-streamer/output_http.so --www /usr/local/share/mjpg-streamer/www"
confファイルの書式については下記をご参照ください。
3.動作確認
動作確認の為、podman_startコマンドでコンテナを起動し、問題が無いか確認します。
STATUSがUpになっていればコンテナ起動中の状態です。
mjpg_stream_autoのコンテナを作成~起動 # podman_start mjpg_stream_auto podman psコマンドで動作確認 # podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c657985072a0 localhost/at_mjpg_stream:v1.0.0 mjpg_streamer -i ... About a minute ago Up About a minute ago 0.0.0.0:9000->8080/tcp mjpg_stream_auto
コンテナ動作中に前回同様に他のPCブラウザ等からhttp://[Armadillo-Iot G4のIPアドレス]:9000/にアクセスし、動作している事を確認します。問題無ければ、コンテナを停止し、作成したmjpg_stream_auto.confを永続化(eMMCへ保存)します。
コンテナ停止 # podman stop mjpg_stream_auto mjpg_stream_auto.confの永続化 # persist_file /etc/atmark/containers/mjpg_stream_auto.conf
上記完了後、Armadillo-IoT G4を再起動します。
再起動後、podman psコマンドで自動でmjpg_stream_autoコンテナが自動作成・動作している事、他のPCからwebブラウザでアクセスし、カメラの静止画やストリーミングが確認出来れば完了です。