ryo_sakura
2025年3月24日 11時37分
シェルスクリプトのコンテナアプリケーションでG4の/var/app/rollback/volumes/aaa(aaaは自身で作成したフォルダ)内に設置したファイルを参照したいと考えております。
app.confにて
add_volumes /var/app/rollback/volumes/aaa:/vol_app:ro
と記載し、
main.shで
gateway_ini="/vol_app/gateway.ini"
. <(grep -v -E '\[.*\]' ${gateway_ini})
と記載しましたが、
ログにてgrep: /vol_app/gateway.ini: No such file or directoryと出力されてしまいます。
正しいファイル参照の仕方をご教授いただきたいです、よろしくお願いいたします。
==========
製品型番:
Debian/ABOSバージョン:
カーネルバージョン:
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
コメント
at_satoshi.ohta
太田です。
aaa は自身で作成したディレクトリなんですね。申し訳ありません。すれ違いになり見逃してました。
気になる点としては、app.confのデフォルトでは、
add_volumes /var/app/rollback/volumes/{{PROJECT}}:/vol_app:ro
があり、ABOS上では、「/var/app/rollback/volumes/プロジェクト名/src」のディレクトリに main.sh があります。
また、コンテナ内では 「/var/app/rollback/volumes/プロジェクト名」をマウントしているため、「/vol_app/src/main.sh」に main.sh があります。
main.sh はどこに配置していますでしょうか?
at_satoshi.ohta
at_satoshi.ohta
ryo_sakura
at_satoshi.ohta
太田です。
状況確認のため、以下を教えていただければ幸いです。
1. ATDE上のプロジェクトディレクトリにおいて aaa ディレクトリはどこに配置していますでしょうか?
app ディレクトリ以外に配置している場合、デフォルトでは SWU イメージをインストールしても Armadillo に aaa ディレクトリは配置されません。
2. app.conf の中身はどのようになっていますでしょうか?
例えば、
add_volumes /var/app/rollback/volumes/{{PROJECT}}:/vol_app:ro add_volumes /var/app/rollback/volumes/aaa:/vol_app:ro
のように /vol_app に2回マウントするように記述されている場合は2回目の /vol_app へのマウントが失敗して aaa ディレクトリはコンテナにマウントされないはずです。
3. そもそも /var/app/rollback/volumes/aaa が Armadillo に存在していますでしょうか?
シリアルコンソールか ssh を使用してご確認いただければと思います。
お手数ですが、よろしくお願いいたします。
ryo_sakura
> 1. ATDE上のプロジェクトディレクトリにおいて aaa ディレクトリはどこに配置していますでしょうか?
> app ディレクトリ以外に配置している場合、デフォルトでは SWU イメージをインストールしても Armadillo に aaa ディレクトリは配置されません。
→ATDE上のプロジェクトディレクトリとは、仮想環境上でのプロジェクトディレクトリということでしょうか?
もしそうであればaaa ディレクトリは配置していない状態です。
> 2. app.conf の中身はどのようになっていますでしょうか?
> 例えば、
>
> add_volumes /var/app/rollback/volumes/{{PROJECT}}:/vol_app:ro > add_volumes /var/app/rollback/volumes/aaa:/vol_app:ro >
> のように /vol_app に2回マウントするように記述されている場合は2回目の /vol_app へのマウントが失敗して aaa ディレクトリはコンテナにマウントされないはずです。
→上記のように/vol_app に2回マウントしている状態です。
> 3. そもそも /var/app/rollback/volumes/aaa が Armadillo に存在していますでしょうか?
> シリアルコンソールか ssh を使用してご確認いただければと思います。
→/var/app/rollback/volumes/aaaはArmadilloに存在しています。
状況は上記の通りです、ご確認をお願いいたします。
at_satoshi.ohta
太田です。
> →ATDE上のプロジェクトディレクトリとは、仮想環境上でのプロジェクトディレクトリということでしょうか?
そうですね。ATDEにおいて、ABOSDEで[CREATE NEW PROJECT] > [G4/X2] > [Shell New Project] からプロジェクトディレクトリを作成したと思います。
作成したプロジェクトディレクトリをmy_project という名前だとすると、my_project/app下に aaa ディレクトリを作成している状況なのかどうか気になりました。
aaa ディレクトリは my_project/app 内に配置しておらず、Armadillo には /var/app/rollback/volumes/aaa が存在するということは、config/app.desc に swdesc_files コマンドを使用して aaa ディレクトリを /var/app/rollback/volumes に配置するように記述していると想像しています。
> →上記のように/vol_app に2回マウントしている状態です。
これが原因のように思われます。
aaa ディレクトリを /vol_app にマウントせずに、例えば、
add_volumes /var/app/rollback/volumes/{{PROJECT}}:/vol_app:ro add_volumes /var/app/rollback/volumes/aaa:/aaa:ro
のようにして、
main.shで
gateway_ini="/aaa/gateway.ini"
とすればどうなりますでしょうか?
ryo_sakura
ryo_sakura
2025年3月24日 11時44分
以下表現を修正いたします。
> シェルスクリプトのコンテナアプリケーションでG4の/var/app/rollback/volumes/aaa(aaaは自身で作成したフォルダ)内に設置したファイルを参照したいと考えております。
→シェルスクリプトのコンテナアプリケーションでG4の/var/app/rollback/volumes/aaa内に設置したgateway.iniファイルを参照したいと考えております。(aaaフォルダとgateway.iniファイルは自身で作成したもの)