Armadilloフォーラム

Armadillo-BTOサービスイメージの作成手順について

e1234

2024年6月19日 11時24分

BTOイメージ作成時の手順について、質問です。

<エラーが出た際の手順>
以下の手順を行うと、BTOイメージ作成時にエラーとなりました。
※ターミナル表示内容を添付します。
 (1)既にコンテナイメージがR/O:trueで保存されている状態で、
   podman commitコマンドで同じ名前のコンテナイメージを保存
  (コンテナイメージが上書きされず、R/O:falseのコンテナイメージが保存されることを確認)
 (2)「abos-ctrl podman-storage --disk」コマンドを実行
   (手順(1)でできたコンテナイメージのみとなっていることを確認)
 (3)BTOイメージ作成
  ⇒ ERROR: Could not remount rootfs as ro: not saving a read-write fs Terminating, cleaning up...

<エラーが出なかった際の手順>
上記<エラーが出た際の手順>の後に、「abos-ctrl podman-storage --tmpfs」コマンドを実行すると、
エラー無く、BTOイメージが作成できました。
※ターミナル表示内容を添付します。

■質問内容
(1)BTOイメージ作成手順について、<エラーが出なかった際の手順>で問題ありませんでしょうか?
(2)BTOイメージ作成手順とは関係ないかもしれないのですが、
 既にコンテナイメージがR/O:trueで保存されている状態で、
 podman commitコマンドで同じ名前のコンテナイメージを保存しようとすると、上書きされなかった理由はなぜでしょうか?
 上書き保存できる方法はありますでしょうか?

ファイル ファイルの説明
エラーが出た際.txt <エラーが出た際の手順>の時
エラーが出なかった際.txt <エラーが出なかった際の手順>の時
コメント

at_dominique.m…

2024年6月19日 12時38分

e1234さん

お世話になっています、
マルティネです。

逆の順番に回答します。

> ■質問内容
> (2)BTOイメージ作成手順とは関係ないかもしれないのですが、
>  既にコンテナイメージがR/O:trueで保存されている状態で、
>  podman commitコマンドで同じ名前のコンテナイメージを保存しようとすると、上書きされなかった理由はなぜでしょうか?

Armadillo Base OS 3.16.2-at.5 (2022年10月リリース)未満のバージョンでは disk モードに入った場合は tmpfs と同じ仕組みで読み取り専用のディレクトリとワーキングディレクトリを別けていました。
R/O:true (読み取り専用)のイメージを commit で保存する場合は読み取り専用ディレクトリに保存できないため、R/O:false のディレクトリに保存されます。

>  上書き保存できる方法はありますでしょうか?

添付していただいた出力に abos-ctrl make-installer --output をつかいましたので、開発を始めた後に 3.17.2-at.4(2023年3月)以上のアップデートしたと思いますが、ご確認していただけますでしょうか?
cat /etc/atmark-release」でバージョンが表示されます。

その場合は一度 「abos-ctrl podman-storage --tmpfs」で tmpfs モードに戻ってから「abos-ctrl podman-storage --disk」に再び切り替えると podman image list で R/O の表示がなくなると思いますが、いかがでしょうか。 (一度 tmpfs に切り替えないと読み取り専用の仕組みが解除されないので、今までずっと続いていたと思います)
R/O の表示がなくなった場合は、podman commit で新しく保存しても上書きされるようになります。

また、余計なお世話かもしれませんが、 make-installer を実行する際に表示される警告ととおりに --disk モードでの運用では電源切断などの影響でコンテナを起動できなくなる可能性もありますので、--tmpfs モードでの運用を推奨します。

> (1)BTOイメージ作成手順について、<エラーが出なかった際の手順>で問題ありませんでしょうか?

こちらのエラーについてはどこかのキャッシュでまだ削除されていたファイルが残っていたので、おそらく --tmpfs に切り替えることでクリアされてイメージを生成できたと思われます。
エラーがなくなったので、こちらのイメージで問題ありません。

ちなみに、このエラーは Armadillo Base OS 3.19.1-at.3(2024年4月)でもう少し詳しく対応していて、どうしても復帰できなかった場合のメッセージは再起動を
推奨するようにしています(無視してイメージを生成してもおそらく問題ありませんが、再起動でエラーをなくせますのでリスクをとらない方がいいと考えています)
今のバージョンでも、このエラーが発生した際に再起動すればなくなりますので、また発生した場合は再起動してください。

よろしくお願いします。

e1234

2024年6月19日 14時05分

マルティネさん

回答ありがとうございます。

> 添付していただいた出力に abos-ctrl make-installer --output をつかいましたので、開発を始めた後に 3.17.2-at.4(2023年3月)以上のアップデートしたと思いますが、ご確認していただけますでしょうか?
> 「cat /etc/atmark-release」でバージョンが表示されます。
ArmadilloBaseOSは、「3.19.1-at.2」をインストールしていました。
-----------------------------------------
armadillo:~# cat /etc/atmark-release
3.19.1-at.2
-----------------------------------------

> その場合は一度 「abos-ctrl podman-storage --tmpfs」で tmpfs モードに戻ってから「abos-ctrl podman-storage --disk」に再び切り替えると podman image list で R/O の表示がなくなると思いますが、いかがでしょうか。 (一度 tmpfs に切り替えないと読み取り専用の仕組みが解除されないので、今までずっと続いていたと思います)
> R/O の表示がなくなった場合は、podman commit で新しく保存しても上書きされるようになります。
ありがとうございます。回答いただいた通り、R/O の表示がなくなり、podman commit で上書きされることを確認できました。