takeshita_kyouhei
2024年3月25日 14時50分
ATDE9内のVSCodeで開発版SWUイメージのビルドができなくなってしまいました
本件、ATDE9のディスク容量が逼迫していたこともあり、誤って「/home/atmark/.local/share/containers/storage/vfs/dir」内のフォルダを削除してしまいました
これによって、VSCodeで開発版SWUイメージのビルドができなくなってしまいました
ERRO[0017] error deleting build container "09813dfec499709683eb7f84d74d0e6295270eaf30a47b4a7c6ff728745c6bc4": identifier is not a container Error: identifier is not a container: error preparing container for next step: error creating build container: error creating container: error creating read-write layer with ID "556ef9a7e69154adebabdf2a220463f742707e50355b6bc6117dea2c074b2970": Stat /home/atmark/.local/share/containers/storage/vfs/dir/241892aff9f485225804f364c34bcfecff29486e4949bc11c10998b72616245e: no such file or directory イメージをビルドできませんでした。
上記について解決する方法はありますでしょうか?
お手数をおかけしますが、ご回答の程をお願いいたします
コメント
at_satoshi.ohta
太田です。
立て続けに申し訳ありません。
ちなみにですが、コンテナイメージをビルドする際に一時的にATDE上の空き容量を大きく消費するので、
ビルドの過程で「no space left on device」 のエラーが発生してビルドできないことがあります。
コンテナやコンテナイメージなどを一度削除してよければ(お客様が直接コンテナやコンテナイメージ内を編集していなければ問題ないです)、ATDE上のターミナルで下記のコマンドを実行して、コンテナやコンテナイメージなどを削除した後、「 fuse-overlayfs」をインストールすればビルドに使用する容量が削減されます。
$ podman system reset # コンテナ、Pod、コンテナイメージ、ビルドキャッシュを全て削除するか聞かれる(Yes) $ sudo apt install fuse-overlayfs
よろしくお願いいたします。
takeshita_kyouhei
返信いただきありがとうございます
>下記のコマンドをATDEのターミナルで実行した後、再度ABOSDEで開発版SWUイメージをビルドしてみていただけますか?
>「プロジェクト名」の部分は使用しているプロジェクト名に置き換えてください。
>
>podman rmi docker.io/arm64v8/debian:bullseye-slim
>podman rmi localhost/プロジェクト名
>podman rmi localhost/arm64v8/プロジェクト名
上記コマンド実行後、開発版SWUイメージの作成が実施できるようになりました
「podman rmi localhost/arm64v8/プロジェクト名」コマンド実行時にはエラーが出ました
No such file or directoryというエラーが出ていました
>コンテナやコンテナイメージなどを一度削除してよければ(お客様が直接コンテナやコンテナイメージ内を編集していなければ問題ないです)、ATDE上のターミナルで下記のコマンドを実行して、コンテナやコンテナイメージなどを削除した後、「 fuse-overlayfs」をインストールすればビルドに使用する容量が削減されます。
>
>
>$ podman system reset ># コンテナ、Pod、コンテナイメージ、ビルドキャッシュを全て削除するか聞かれる(Yes) >$ sudo apt install fuse-overlayfs >
コンテナファイルがATDE9の容量を圧迫した場合、どのように削除するのがよいのでしょうか?
takeshita_kyouhei
また、次のような事象も発生しているのですが、解決方法はありますでしょうか?
・Dockerfileでコピー指示をしているファイルが所定のディレクトリにコピーされていない
VSCode上で作成したプロジェクト/container内に配置した「hosts」ファイルについて、Dockerfileに記載したコマンドでコンテナ内へコピーするよう指示しています
コマンド COPY hosts /etc/hosts
しかし、上記コピーがされていません
→Armadillo-IoT G4にsshで接続し、podman exec -it data_uploader /bin/bashコマンドでコンテナへ接続
cat /etc/hostsコマンドで内部を確認しましたが、想定された設定がされているhostsファイルではありませんでした
使用している回線及び宛先サーバの都合で、hostsによる名前解決が必須になるため、hostsファイルの上書きが必要になります
at_satoshi.ohta
太田です。
お世話になっております。
>「podman rmi localhost/arm64v8/プロジェクト名」コマンド実行時にはエラーが出ました
> No such file or directoryというエラーが出ていました
これは開発版SWUイメージをビルドできるようになったのであれば問題ないです。
> コンテナファイルがATDE9の容量を圧迫した場合、どのように削除するのがよいのでしょうか?
コンテナイメージが一番容量を消費しているということであれば、
podman images -a
を実行して下記以外のものがあるか確認してください。
docker.io/arm64v8/debian:bullseye-slim localhost/プロジェクト名 localhost/arm64v8/プロジェクト名 <none>
none は「localhost/プロジェクト名」などを作成する過程で作られます。
もし、プロジェクトに必要ないコンテナイメージで削除してよいものがあれば
podman rmi [IMAGE ID]
で削除してください。 [IMAGE ID] は podman images コマンドを実行時に表示されます。
また、前回回答したとおり、コンテナイメージをビルドする時に空き容量を大きく使用する問題については、
「fuse-overlayfs」をインストールして対応していただければと思います。
> また、次のような事象も発生しているのですが、解決方法はありますでしょうか?
> ・Dockerfileでコピー指示をしているファイルが所定のディレクトリにコピーされていない
こちらについて同じ事象を再現しました。
https://docs.docker.jp/engine/reference/commandline/run.html#hosts-add-…
上記によると、コンテナ内の /etc/hosts にホスト名とIPアドレスを追加するには podman run 時に --add-host というオプションを追加する必要があるようです。
プロジェクトディレクトリにある config/app.conf の add_args コマンドを使用することで、Armadillo 内のコンテナを起動する時に
--add-host オプションを追加できます。
例えばホスト名「hoge」でIPアドレス「11:222:333:44」の場合は config/app.conf に
下記のように記述すれば /etc/hosts に追加できます。
add_args --add-host=hoge:11:222:333:44
add_args に関しましてはマニュアルの「 podman run に引数を渡す設定」をご参照ください。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
app.conf を編集したのち、開発版SWUイメージを作成して Armadillo にインストールしてください。
その後、Armadillo に ssh で接続して下記を実行してください。
podman exec -it data_uploader cat /etc/hosts
を実行すると確認できると思います。
ここではコンテナ名を「data_uploader」としています。
よろしくお願いいたします。
takeshita_kyouhei
本件、返信いただきありがとうございます
> >「podman rmi localhost/arm64v8/プロジェクト名」コマンド実行時にはエラーが出ました
> > No such file or directoryというエラーが出ていました
>
> これは開発版SWUイメージをビルドできるようになったのであれば問題ないです。
>
> > コンテナファイルがATDE9の容量を圧迫した場合、どのように削除するのがよいのでしょうか?
>
> コンテナイメージが一番容量を消費しているということであれば、
>
> podman images -a >
> を実行して下記以外のものがあるか確認してください。
>
> docker.io/arm64v8/debian:bullseye-slim > localhost/プロジェクト名 > localhost/arm64v8/プロジェクト名 > <none> >
> none は「localhost/プロジェクト名」などを作成する過程で作られます。
> もし、プロジェクトに必要ないコンテナイメージで削除してよいものがあれば
>
> podman rmi [IMAGE ID] >
> で削除してください。 [IMAGE ID] は podman images コマンドを実行時に表示されます。
>
> また、前回回答したとおり、コンテナイメージをビルドする時に空き容量を大きく使用する問題については、
> 「fuse-overlayfs」をインストールして対応していただければと思います。
上記について参考にさせていただきます
現状ではまだコマンド実行未実施ですが、近いうちに実行してみたいと思います
対策としてはほかにもVirtualBoxでATDE9のHDDサイズを変更できないか調査中になります(ATDE9はVirtualBoxで動作させています)
> > また、次のような事象も発生しているのですが、解決方法はありますでしょうか?
> > ・Dockerfileでコピー指示をしているファイルが所定のディレクトリにコピーされていない
>
> こちらについて同じ事象を再現しました。
>
> https://docs.docker.jp/engine/reference/commandline/run.html#hosts-add-…
>
> 上記によると、コンテナ内の /etc/hosts にホスト名とIPアドレスを追加するには podman run 時に --add-host というオプションを追加する必要があるようです。
>
> プロジェクトディレクトリにある config/app.conf の add_args コマンドを使用することで、Armadillo 内のコンテナを起動する時に
> --add-host オプションを追加できます。
>
> 例えばホスト名「hoge」でIPアドレス「11:222:333:44」の場合は config/app.conf に
> 下記のように記述すれば /etc/hosts に追加できます。
>
>
> add_args --add-host=hoge:11:222:333:44 >
>
> add_args に関しましてはマニュアルの「 podman run に引数を渡す設定」をご参照ください。
>
> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
>
> app.conf を編集したのち、開発版SWUイメージを作成して Armadillo にインストールしてください。
>
> その後、Armadillo に ssh で接続して下記を実行してください。
>
> podman exec -it data_uploader cat /etc/hosts >
> を実行すると確認できると思います。
> ここではコンテナ名を「data_uploader」としています。
上記によって問題解決できました
/etc/hostsに望んだ情報が記載され、そのおかげで「data_uploader」で名前解決、想定されたサーバアクセスができたことを確認しました
takeshita_kyouhei
> コンテナファイルがATDE9の容量を圧迫した場合、どのように削除するのがよいのでしょうか?
>
> コンテナイメージが一番容量を消費しているということであれば、
>
> podman images -a >
> を実行して下記以外のものがあるか確認してください。
>
> docker.io/arm64v8/debian:bullseye-slim > localhost/プロジェクト名 > localhost/arm64v8/プロジェクト名 > <none> >
> none は「localhost/プロジェクト名」などを作成する過程で作られます。
> もし、プロジェクトに必要ないコンテナイメージで削除してよいものがあれば
>
> podman rmi [IMAGE ID] >
> で削除してください。 [IMAGE ID] は podman images コマンドを実行時に表示されます。
>
> また、前回回答したとおり、コンテナイメージをビルドする時に空き容量を大きく使用する問題については、
> 「fuse-overlayfs」をインストールして対応していただければと思います。
上記で紹介されているコンテナイメージの削除を試行してみましたが、エラーで失敗しました
atmark@atde9:~$ podman images -a REPOSITORY TAG IMAGE ID CREATED SIZE localhost/data_uploader latest 790b3a26959d 24 minutes ago 785 MB localhost/arm64v8/data_uploader latest 790b3a26959d 24 minutes ago 785 MB <none> <none> 2f3e0441cc4f 25 minutes ago 784 MB <none> <none> 740368a2d04b 26 minutes ago 784 MB <none> <none> fda4e2f46425 27 minutes ago 784 MB <none> <none> 6321eaf0f093 28 minutes ago 784 MB <none> <none> ca6d0832af5f 28 minutes ago 784 MB <none> <none> 894808ed7266 29 minutes ago 784 MB <none> <none> 5a294db885b8 30 minutes ago 784 MB <none> <none> b0a20672377d 31 minutes ago 784 MB <none> <none> 27bdbaaae457 33 minutes ago 784 MB <none> <none> a38dc4e5be44 37 minutes ago 784 MB <none> <none> bdb357d9d0ab 42 minutes ago 78.1 MB <none> <none> a15e7352443f 18 hours ago 78.1 MB <none> <none> 81863dcaa920 18 hours ago 78.1 MB <none> <none> 08beee24e35c 41 hours ago 78.1 MB <none> <none> 0440a013739c 41 hours ago 78 MB <none> <none> b4af0e2a2bc7 41 hours ago 78 MB docker.io/arm64v8/debian bullseye-slim 9f343c44686a 2 weeks ago 78 MB docker.io/arm64v8/debian bullseye a5c48cac0790 2 weeks ago 123 MB atmark@atde9:~$ sudo podman rmi b4af0e2a2bc7 Error: 1 error occurred: * unable to find a name and tag match for b4af0e2a2bc7 in repotags: no such image
IMAGEIDを指定しているのですが、削除できない原因は何なのでしょうか?
at_satoshi.ohta
takeshita_kyouhei
> 太田です。
>
> 下記のように sudo をつけずにもう一度実行してみていただけますでしょうか?
>
>
> podman rmi b4af0e2a2bc7 >
>
> よろしくお願いいたします。
返信有り難うございます
以下の通り、「sudo」をつけずに実行しました
エラーの内容が変わったようです
atmark@atde9:~$ podman rmi b4af0e2a2bc7 Error: 1 error occurred: * unable to delete "b4af0e2a2bc7ca917358fb75591449c4835d93cd938b17e87bb0102888da47e3" (cannot be forced) - image has dependent child images: image is being used
at_satoshi.ohta
takeshita_kyouhei
>
> for i in $(podman images -aq); do podman history $i | grep -q b4af0e2a2bc7 && echo $i; done >
>
> 出力結果を教えていただけますでしょうか?
コマンドを実行しましたが、何も出力されませんでした
atmark@atde9:~$ for i in $(podman images -aq); do podman history $i | grep -q b4af0e2a2bc7 && echo $i; done atmark@atde9:~$
手動入力で1回、コマンドをコピーして1回入力しています
at_satoshi.ohta
太田です。
コマンドを実行していただきありがとうございます。
このコマンドで「b4af0e2a2bc7」を元に作成されたコンテナイメージを特定できると思ったのですが、
何も出力されないということで了解しました。
下記のコマンドでプロジェクトのコンテナイメージも含めて全て消して、podmanの環境を一度リセットしていただいた方が確実かと思います。
podman system reset
その上で、開発版SWUを生成するボタンを押していただければ
プロジェクトに必要なコンテナイメージのみがある環境が作れると思います。
よろしくお願いいたします。
at_satoshi.ohta
2024年3月25日 16時42分
太田です。
エラーをこちらでも再現しました。
下記のコマンドをATDEのターミナルで実行した後、再度ABOSDEで開発版SWUイメージをビルドしてみていただけますか?
「プロジェクト名」の部分は使用しているプロジェクト名に置き換えてください。
よろしくお願いいたします。