Armadilloフォーラム

コンテナコンフィグファイルでのadd_volumesとコンテナ内のファイルを.swuに固めたとき

k.sato

2024年4月5日 11時53分

佐藤です。

お世話になっております。

pythonで作成したsrcファイルは
VSCode の左ペインの [my_project] から [Generate development swu] を実行したときに
コンテナ内に配置してそれがホストの「/var/app/rollback/volumes/my_project/src/*」に配置されます。

同じ様にwebのhtmlファイルなどのソースをコンテナ内の「/var/www/localhost/htdocs」に配置して
ホストの「/var/app/rollback/volumes/www_html」の場所で共有する方法はありますか?

alpine:3.18のコンテナなので
SCodeの「/my_project/container/resources/var/www/localhost/htdocs」フォルダを作成し、
そこにwebのソースを入れて、
app.confでは「add_volumes www_html:/var/www/localhost/htdocs 」として
[Generate development swu] を実行してarmadilloをswuアップデートしてみましたがソースが変わりません。

どうすればよいでしょうか?

以上、よろしくお願い致します。

コメント

at_satoshi.ohta

2024年4月5日 14時06分

太田です。

> コンテナ内に配置してそれがホストの「/var/app/rollback/volumes/my_project/src/*」に配置されます。

これについては行っている操作が反対でして、「/var/app/rollback/volumes/my_project/src/*」をホスト側に配置した後、コンテナにマウントしております。

そのため、同様のことをするのでしたらまず、
htmlファイルなどのソースをホストの「/var/app/rollback/volumes/www_html」に配置した後、
コンテナの「/var/www/localhost/htdocs」にマウントする必要があります。

ちなみにwebのhtmlなどのソースはコンテナ内に置いておくことを推奨していますが、
それらをコンテナの外にマウントしたかった意図としては、どのようなお考えがあってのことでしょうか?

太田様

佐藤です。

回答ありがとうございます。
> > コンテナ内に配置してそれがホストの「/var/app/rollback/volumes/my_project/src/*」に配置されます。
>
> これについては行っている操作が反対でして、「/var/app/rollback/volumes/my_project/src/*」をホスト側に配置した後、コンテナにマウントしております。

> そのため、同様のことをするのでしたらまず、
> htmlファイルなどのソースをホストの「/var/app/rollback/volumes/www_html」に配置した後、
> コンテナの「/var/www/localhost/htdocs」にマウントする必要があります。
htmlファイルなどのソースをホストの「/var/app/rollback/volumes/www_html」に配置は
VSCodeのmy_projectのDockerfile?にどう記述すればよいでしょうか?

> ちなみにwebのhtmlなどのソースはコンテナ内に置いておくことを推奨していますが、
> それらをコンテナの外にマウントしたかった意図としては、どのようなお考えがあってのことでしょうか?
まだ開発中の段階の為試験的にソースを配置するのに都合がよいかと思いました。
最終的にはコンテナ内のみとする予定です。

よろしくお願い致します。

at_satoshi.ohta

2024年4月5日 17時00分

太田です。

> まだ開発中の段階の為試験的にソースを配置するのに都合がよいかと思いました。

試験的にということで了解しました。

下記の流れでhtmlファイルなどのソースをホストの「/var/app/rollback/volumes/www_html」に配置した後、
コンテナの「/var/www/localhost/htdocs」にマウントできると思います。

1. ATDEにあるプロジェクトディレクトリの直下(appやconfig、containerディレクトリと同じ階層)に「www_html」というディレクトリを作成
2. プロジェクトディレクトリの直下の「www_html」にhtmlなどのソースを配置
3. プロジェクトディレクトリの「container/resources」ディレクトリに「var/www/localhost」ディレクトリを作成(htdocsディレクトリは作らないでください)
4. プロジェクトディレクトリの「container/config/app.desc」ファイルに下記を追記

swdesc_command "rm -rf /var/app/rollback/volumes/www_html"
swdesc_files --dest "www_html" "www_html"

5. プロジェクトディレクトリの「container/config/app.conf」ファイルに下記を追記

add_volumes /var/app/rollback/volumes/www_html:/var/www/localhost/htdocs

上記の編集後、[Generate development swu]を実行してdevelopment.swuを作成してArmadilloにインストールしてください。

よろしくお願いいたします。

佐藤です。

お世話になっております。

> 1. ATDEにあるプロジェクトディレクトリの直下(appやconfig、containerディレクトリと同じ階層)に「www_html」というディレクトリを作成
> 2. プロジェクトディレクトリの直下の「www_html」にhtmlなどのソースを配置
> 3. プロジェクトディレクトリの「container/resources」ディレクトリに「var/www/localhost」ディレクトリを作成(htdocsディレクトリは作らないでください)
> 4. プロジェクトディレクトリの「container/config/app.desc」ファイルに下記を追記

> swdesc_command "rm -rf /var/app/rollback/volumes/www_html"
> swdesc_files --dest "www_html" "www_html"

> 5. プロジェクトディレクトリの「container/config/app.conf」ファイルに下記を追記

> add_volumes /var/app/rollback/volumes/www_html:/var/www/localhost/htdocs

> 上記の編集後、[Generate development swu]を実行してdevelopment.swuを作成してArmadilloにインストールしてください。

教えて頂いた方法で無事、swuアップデートにより「/var/app/rollback/volumes/www_html」に配置したソースが更新されました。

ありがとうございました。