shun
2025年7月17日 10時03分
==========
製品型番:Armadillo-610
Debian/ABOSバージョン:3.19.2-at.5
カーネルバージョン:5.10.220
==========
お世話になっております。
コンテナへコピーするファイルを[container/resources]に入れて.swuファイルをインストールしたのですが、ファイルが反映されていませんでした。
[ATDE側] .../container/resources/var/tmp/XXX/... ←container/resources下に/var/tmp/XXX...というファイルを追加 [Armadillo側] armadillo:~# cd /var/ armadillo:/var# ls -l total 9 drwxr-xr-x 4 root root 1024 Jul 8 2024 app drwxr-xr-x 2 root root 512 Jan 1 1970 at-log drwxr-xr-x 4 root root 1024 Jun 25 2024 cache dr-xr-xr-x 2 root root 1024 Jun 25 2024 empty drwxr-xr-x 1 root root 100 Jul 8 2024 lib drwxr-xr-x 2 root root 1024 Jun 25 2024 local lrwxrwxrwx 1 root root 9 Jul 16 18:06 lock -> /run/lock drwxr-xr-x 4 root root 1024 Jul 16 02:04 log drwxr-xr-x 2 root root 1024 Jun 25 2024 mail drwxr-xr-x 2 root root 1024 Jun 25 2024 opt lrwxrwxrwx 1 root root 4 Jul 16 18:03 run -> /run drwxr-xr-x 3 root root 1024 Jun 25 2024 spool drwxrwxrwt 1 root root 0 Jul 16 18:06 tmp armadillo:/var# cd ./tmp armadillo:/var/tmp# ls -l total 0 armadillo:/var/tmp#
また、app.conf内には以下のような記述をしています。
set_image localhost/{{PROJECT}}:latest # mount app sources and data: # - relative paths are in /var/app/rollback/volumes and can be # rolled back on failed upgrades, suitable for application sources # and assets. # - /var/app/volumes is not copied on updates and more suitable # for volatile data such as logs and databases. add_volumes {{PROJECT}}:/vol_app add_volumes /var/app/volumes/{{PROJECT}}:/vol_data add_devices /dev/ttyACM0 add_devices /dev/ttymxc3 # Allow LED to be written. This is application specific # and should be changed depending on your needs. add_volumes /sys:/sys add_volumes /var/tmp:/var/tmp add_volumes /usr/bin:/usr/bin # launch app set_command /vol_app/build/Initialize
.swuインストール後にABOS DE内の[OPEN PROJECT→Initialize→container]内にコピーしたいファイルがあることは確認しました。※添付画像
お忙しいところ恐縮ですがご回答の程よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
Armadillo.png |
コメント
shun
お世話になっております。
下記に情報を添付します。
●initialize.conf
armadillo:~# cat /etc/atmark/containers/initialize.conf set_image localhost/initialize:latest # mount app sources and data: # - relative paths are in /var/app/rollback/volumes and can be # rolled back on failed upgrades, suitable for application sources # and assets. # - /var/app/volumes is not copied on updates and more suitable # for volatile data such as logs and databases. add_volumes initialize:/vol_app add_volumes /var/app/volumes/initialize:/vol_data add_devices /dev/ttyACM0 add_devices /dev/ttymxc3 # Allow LED to be written. This is application specific # and should be changed depending on your needs. add_volumes /sys:/sys add_volumes /var/tmp:/var/tmp add_volumes /usr/bin:/usr/bin # launch app set_command /vol_app/build/Initialize armadillo:~#
●コンテナ内の/var/tmpの中身
armadillo:~# podman exec -ti initialize sh # ls bin dev home media opt root sbin sys tmp var vol_data boot etc lib mnt proc run srv test usr vol_app # ls /var backups cache lib local lock log mail opt run spool tmp # ls -l /var total 8 drwxr-xr-x 1 root root 0 Aug 14 2024 backups drwxr-xr-x 1 root root 36 Jun 30 06:08 cache drwxr-xr-x 1 root root 14 Jun 30 06:07 lib drwxrwsr-x 1 root staff 0 Aug 14 2024 local lrwxrwxrwx 1 root root 9 Apr 7 00:00 lock -> /run/lock drwxr-xr-x 1 root root 28 Jul 17 02:25 log drwxrwsr-x 1 root mail 0 Apr 7 00:00 mail drwxr-xr-x 1 root root 0 Apr 7 00:00 opt lrwxrwxrwx 1 root root 4 Apr 7 00:00 run -> /run drwxr-xr-x 1 root root 8 Apr 7 00:00 spool drwxrwxrwt 1 root root 0 Jul 17 02:38 tmp # ls -l /var/tmp total 0 # exit armadillo:~#
以上です。よろしくお願いいたします。
at_shota.shimoyama
shun 様
すみません、私の理解が不足しておりました。
まず、add_volumes /var/tmp:/var/tmp
がある状態では、コンテナ起動後に/var/tmp内のファイルが見られないのは正常な挙動です
これは、add_volumes /var/tmp:/var/tmp
をするとコンテナイメージ内の/var/tmpではなくABOS側の/var/tmpを参照するからです
そのため、元々何のファイルも無かったABOS側の/var/tmpを参照することになり、コンテナ内から/var/tmpをlsしても何も表示されません
(コンテナ起動後に/var/tmpにファイルを作成したりすることは可能です)
コンテナ起動時にABOS側に見せる(add_volumes)必要があるものはコンテナイメージの中に含めることはできませんので、
ABOS側に直接配置するか、コンテナ起動後にadd_volumesしているディレクトリにファイル等をコピーする必要があります
ABOS側に直接配置する場合にはABOSDEの/app/buildに置くと、バイナリと一緒にABOS側に転送されるのですぐに試せるかと思いますが、差し支えなければ/var/tmpに置いておきたかった理由などをお聞きしてもよろしいでしょうか?
shun
お世話になっております。
/var/tmpに置きたい理由といたしましては、以前弊社で"Armadillo-480m"を使用した製品があったのですが、"Armadillo-480m"製造終了に伴い"Armadillo-610"へのソフトウェア移植をしたいと考えております。従来製品はDebian系のOSで/var/tmp
下のファイルや/usr/bin
下のファイルなどを使用して開発をしていたので、ルートファイルシステムは極力変更しないようにして移植作業を行いたいと考えていたためです。
/var/tmp
や/usr/bin
などのルートファイルはコンテナ上ではなく、ABOS本体に書き込んでコンテナ内に参照する(add_volumes /var/tmp:/var/tmp
)方法が適切なのでしょうか?
以上、よろしくお願いいたします。
at_shota.shimoyama
> /var/tmpに置きたい理由といたしましては、以前弊社で"Armadillo-480m"を使用した製品があったのですが、"Armadillo-480m"製造終了に伴い"Armadillo-610"へのソフトウェア移植をしたいと考えております。従来製品はDebian系のOSで/var/tmp
下のファイルや/usr/bin
下のファイルなどを使用して開発をしていたので、ルートファイルシステムは極力変更しないようにして移植作業を行いたいと考えていたためです。
> /var/tmp
や/usr/bin
などのルートファイルはコンテナ上ではなく、ABOS本体に書き込んでコンテナ内に参照する(add_volumes /var/tmp:/var/tmp
)方法が適切なのでしょうか?
詳細にご説明いただきありがとうございます。
ABOS側の/var/tmpをコンテナ側の/var/tmpにマウントしたい場合(add_volumes /var/tmp:/var/tmp
)はABOS側の/var/tmpにあらかじめ転送しておくか、コンテナイメージ内に保存されたファイルをコンテナ起動後に/var/tmpにコピーする必要がありますが、
そもそもABOS側の/var/tmpをコンテナ側の/var/tmpにマウントする必要がない場合には、コンテナ内の/var/tmpにファイルをそのまま置いておけます。(実際、app.confからadd_volumes /var/tmp:/var/tmp
を外すと、コンテナ内では/var/tmpにファイルを確認できるはずです)
ABOS側/var/tmpをコンテナ側/var/tmpにマウントしたい理由などはございますでしょうか?
よろしくお願いします
at_shota.shimoyama
2025年7月17日 10時59分
アットマークテクノの下山です。
app.confには
add_volumes /var/tmp:/var/tmp
があり、コンテナ内の/var/tmpにはファイルがあるはずなのに、ABOS側では/var/tmpにファイルが見えないということですねこちらでもArmadillo-610&同じABOSバージョンで最小限のコンテナの構成で試してみましたが再現できませんでした…
ひとまず、
/etc/atmark/containers/
に[プロジェクト名].confファイルがあるはずです(ABOSDEでのapp.confと同じ内容)ので、その中身を添付いただけますでしょうか?↓
また、コンテナ内に入って、/var/tmp以下にファイルがあるかどうかも直接ご確認ください↓
よろしくお願いします。