Armadilloフォーラム

コンテナ内に保存されている設定ファイルの編集を行う方法について

takeshita_kyouhei

2025年2月25日 14時46分

コンテナで実行しているPythonソフトウェアについて、設定ファイルを設けています
 場所は「app/src」配下

この設定ファイルについて、一時的な変更をSWU生成以外で行う方法はないでしょうか?
 インターネットへ接続できない状態(soracomの閉域網+IoTHUBの組み合わせ)で動作確認を行う必要があり、
 その際に設定の変更が必要となった場合どのように実施すればいいかが知りたいです

以上、回答のほうをよろしくお願いいたします

コメント

at_satoshi.ohta

2025年2月25日 16時45分

太田です。

ネットワークが使えない状況におけるコンテナイメージの更新ということでお間違いないでしょうか?

「SWU生成以外」とのご要望とは逸れますが、ネットワークを使用せずとも、USB または microSD 内のディレクトリ直下に SWUイメージを配置して Armadillo に挿入すると自動的に SWU イメージがインストールすることが出来ます。
この方法では何かしら不都合がありますでしょうか?
もし、この方法で問題なければ、ABOSDE で作成した development.swu または release.swu をそのままお使いいただけます。

また、上記の方法以外では、
シリアルコンソールで Armadillo のターミナルに入って頂き、「/var/app/rollback/volumes/<プロジェクト名>/app/src」に設定ファイルが存在するので、vi などで直接編集する方法が考えられます。
ただ、その場合は、ATDE 上にあるプロジェクトディレクトリ内のファイル内容と Armadillo 上のファイル内容に差異が生まれことにご注意ください。

どうぞよろしくお願いいたします。

takeshita_kyouhei

2025年2月25日 17時17分

返信ありがとうございます

> また、上記の方法以外では、
> シリアルコンソールで Armadillo のターミナルに入って頂き、「/var/app/rollback/volumes/<プロジェクト名>/app/src」に設定ファイルが存在するので、vi などで直接編集する方法が考えられます。
> ただ、その場合は、ATDE 上にあるプロジェクトディレクトリ内のファイル内容と Armadillo 上のファイル内容に差異が生まれことにご注意ください。

試したいのはどちらかといいますと上記のほうですね
一時的に設定(Modbusに接続する際の情報や、Tag情報など)を変更したいです

この手法で設定ファイルを変更した後、VSCodeでアプリをArmadilloで実行 すれば、(設定ファイルを読むように実装されている必要はありますが)設定の通りに動作が変わるという認識で合っていますでしょうか?

at_satoshi.ohta

2025年2月25日 17時57分

太田です。

> この手法で設定ファイルを変更した後、VSCodeでアプリをArmadilloで実行

1点お伺いしたいのですが、LANケーブルなどで Armadillo とローカルネットワーク上で繋がっており、ssh 可能な状況でしょうか?
もしそうであれば、Armadillo 上の /var/app/rollback/volumes/<プロジェクト名>/src 下のファイルを変更したいだけであれば、SWU イメージを Armadillo にインストールする必要もなく、以下の手順で Armadillo 内のファイルを変更して、Aramdillo 上のコンテナを再起動することが出来ます。

1. ATDE 上の VS Code で app/src 下の設定ファイルを編
2. [App run on Armadillo] を実行

[App run on Armadillo] を実行すると、'./scripts/run_armadillo.sh' が実行され、以下の動作を行うためです。
- app/src ディレクトリと app.conf を Armadillo 内にコピーする
- Armadillo 内で podman_start および podman attach を実行

一方で ssh 出来ない場合は、

1. Armadillo のターミナルにシリアルコンソールで入る
2. /var/app/rollback/volumes/<プロジェクト名>/src 下の内容を vi で更新
3. 以下のコマンドを Armadillo 上で実行すると、ATDE上で [App run on Armadillo] 実行時と同じ動作をします。

$ podman_start <プロジェクト名> && podman attach <プロジェクト名>

podman_start は/etc/atmark/containers/<プロジェクト名>.conf を読み込み、その設定でコンテナを起動するコマンドです。
podman attach は実行中のコンテナに接続し、進行中の出力を表示したり出来ます。

どうぞよろしくお願いいたします。