Armadilloフォーラム

コンテナ内でのapt install時の空き容量について

r_kawai

2022年5月18日 15時31分

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

現在御社提供のサンプルコンテナイメージ
https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-g4/co…
を使用してコンテナを起動し、その上でfirefoxを動作させたいと考えておりますが、
コンテナ上でapt installにてfirefox-esrをインストールしようとしたところ、
「After this operation, 575 MB of additional disk space will be used.
E: You don't have enough free space in /var/cache/apt/archives/.」
とエラーが発生し、インストールに失敗します。

コンテナ上のディスク容量を確認すると、

root@51800c820937:/# df
Filesystem     1K-blocks   Used Available Use% Mounted on
overlay           340144 249188     90956  74% /
tmpfs              65536      0     65536   0% /dev
/dev/mmcblk2p4     24448  24448         0 100% /opt/firmware
tmpfs             340144 249188     90956  74% /run/udev
shm                64000      0     64000   0% /dev/shm
cgroup              1024      0      1024   0% /sys/fs/cgroup
devtmpfs           10240      0     10240   0% /proc/keys

となっていることから、ルートディレクトリ配下の容量が足りないことが原因と考えていますが、コンテナ上でルートディレクトリ配下の容量を増やす方法はありますでしょうか。
apt installの失敗を回避できる方法についてご教示頂けますと幸いです。

以下に一連の手順のログを貼付いたします。

armadillo:~/work# podman load -i at-debian-image-v1.0.5.tar
Getting image source signatures
…
…
…
…
Writing manifest to image destination
Storing signatures
Getting image source signatures
…
…
…
…
Writing manifest to image destination
Storing signatures
Loaded image(s): localhost/at-debian-image:latest,localhost/at-debian-image:v1.0.5
armadillo:~/work# podman run -itd --name=xwayland_example \
> --env=XDG_RUNTIME_DIR=/tmp \
> --device=/dev/dri \
> --device=/dev/galcore \
> --device=/dev/input \
> --device=/dev/tty1 \
> --volume=/run/udev:/run/udev:ro \
> --volume=/opt/firmware:/opt/firmware:ro \
> --cap-add=SYS_TTY_CONFIG \
> localhost/at-debian-image:latest /bin/bash
[ 2090.764331] IPv6: ADDRCONF(NETDEV_CHANGE): veth18c7c5fb: link becomes ready
[ 2090.771434] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 2090.778001] cni-podman0: port 1(veth18c7c5fb) entered blocking state
[ 2090.784422] cni-podman0: port 1(veth18c7c5fb) entered disabled state
[ 2090.790953] device veth18c7c5fb entered promiscuous mode
[ 2090.796356] cni-podman0: port 1(veth18c7c5fb) entered blocking state
[ 2090.802721] cni-podman0: port 1(veth18c7c5fb) entered forwarding state
51800c820937353130dc7ba3ceb405f56d5cc7797dfb27bd7f84beee61d283d7
armadillo:~/work# podman attach xwayland_example
 
root@51800c820937:/# apt update && apt upgrade
Get:1 http://security.debian.org/debian-security bullseye-security InRelease [44.1 kB]
Hit:2 http://deb.debian.org/debian bullseye InRelease
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [39.4 kB]
Ign:4 http://download.atmark-techno.com/debian bullseye InRelease
Get:5 http://download.atmark-techno.com/debian bullseye Release [11.0 kB]
Get:6 http://download.atmark-techno.com/debian bullseye Release.gpg [833 B]
Get:7 http://security.debian.org/debian-security bullseye-security/main arm64 Packages [145 kB]
Get:8 http://download.atmark-techno.com/debian bullseye/main Sources [12.2 kB]
Get:9 http://download.atmark-techno.com/debian bullseye/main arm64 Packages [64.8 kB]
Fetched 317 kB in 2s (201 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libssl1.1
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1388 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://security.debian.org/debian-security bullseye-security/main arm64 libssl1.1 arm64 1.1.1n-0+deb11u2 [1388 kB]
Fetched 1388 kB in 0s (5388 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 8735 files and directories currently installed.)
Preparing to unpack .../libssl1.1_1.1.1n-0+deb11u2_arm64.deb ...
Unpacking libssl1.1:arm64 (1.1.1n-0+deb11u2) over (1.1.1n-0+deb11u1) ...
Setting up libssl1.1:arm64 (1.1.1n-0+deb11u2) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/aarch64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Processing triggers for libc-bin (2.31-13+deb11u3) ...
root@51800c820937:/# apt  install -y locales firefox-esr xwayland
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  adwaita-icon-theme at-spi2-core dbus-user-session dconf-gsettings-backend
  dconf-service dmsetup glib-networking glib-networking-common
  glib-networking-services gsettings-desktop-schemas gtk-update-icon-cache
  hicolor-icon-theme libaom0 libargon2-1 libatk-bridge2.0-0 libatk1.0-0
  libatk1.0-data libatspi2.0-0 libavahi-client3 libavahi-common-data
  libavahi-common3 libavcodec58 libavutil56 libc-l10n libcairo-gobject2
  libcap2 libcodec2-0.9 libcolord2 libcryptsetup12 libcups2 libdav1d4
  libdbus-glib-1-2 libdconf1 libdeflate0 libdevmapper1.02.1 libdrm-amdgpu1
  libdrm-nouveau2 libdrm-radeon1 libedit2 libelf1 libepoxy0 libevent-2.1-7
  libfontenc1 libgbm1 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
  libgdk-pixbuf2.0-common libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0
  libglx-mesa0 libglx0 libgomp1 libgpm2 libgsm1 libgtk-3-0 libgtk-3-bin
  libgtk-3-common libice6 libip4tc2 libjbig0 libjson-c5 libjson-glib-1.0-0
  libjson-glib-1.0-common libkmod2 liblcms2-2 libllvm11 libmp3lame0
  libncurses6 libncursesw6 libnss-systemd libnuma1 libogg0 libopenjp2-7
  libopus0 libpam-systemd libprocps8 libproxy1v5 libpsl5 librest-0.7-0
  librsvg2-2 librsvg2-common libsensors-config libsensors5 libshine3 libsm6
  libsnappy1v5 libsoup-gnome2.4-1 libsoup2.4-1 libsoxr0 libspeex1 libsqlite3-0
  libswresample3 libtheora0 libtiff5 libtwolame0 libunwind8 libva-drm2
  libva-x11-2 libva2 libvdpau-va-gl1 libvdpau1 libvorbis0a libvorbisenc2
  libvpx6 libvulkan1 libwavpack1 libwebp6 libwebpmux3 libx11-xcb1 libx264-160
  libx265-192 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0
  libxcb-randr0 libxcb-sync1 libxcomposite1 libxdamage1 libxfont2 libxi6
  libxinerama1 libxkbfile1 libxmu6 libxmuu1 libxpm4 libxrandr2 libxshmfence1
  libxt6 libxtst6 libxvidcore4 libxxf86vm1 libz3-4 libzvbi-common libzvbi0
  mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers ocl-icd-libopencl1
  procps psmisc publicsuffix systemd systemd-sysv systemd-timesyncd
  va-driver-all vdpau-driver-all x11-common x11-xkb-utils xauth xfonts-base
  xfonts-encodings xfonts-utils xserver-common
Suggested packages:
  fonts-stix | otf-stix fonts-lmodern libcanberra0 pulseaudio colord
  cups-common gpm gvfs liblcms2-utils opus-tools librsvg2-bin lm-sensors speex
  opencl-icd systemd-container policykit-1 nvidia-vdpau-driver xfs | xserver
The following NEW packages will be installed:
  adwaita-icon-theme at-spi2-core dbus-user-session dconf-gsettings-backend
  dconf-service dmsetup firefox-esr glib-networking glib-networking-common
  glib-networking-services gsettings-desktop-schemas gtk-update-icon-cache
  hicolor-icon-theme libaom0 libargon2-1 libatk-bridge2.0-0 libatk1.0-0
  libatk1.0-data libatspi2.0-0 libavahi-client3 libavahi-common-data
  libavahi-common3 libavcodec58 libavutil56 libc-l10n libcairo-gobject2
  libcap2 libcodec2-0.9 libcolord2 libcryptsetup12 libcups2 libdav1d4
  libdbus-glib-1-2 libdconf1 libdeflate0 libdevmapper1.02.1 libdrm-amdgpu1
  libdrm-nouveau2 libdrm-radeon1 libedit2 libelf1 libepoxy0 libevent-2.1-7
  libfontenc1 libgbm1 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
  libgdk-pixbuf2.0-common libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0
  libglx-mesa0 libglx0 libgomp1 libgpm2 libgsm1 libgtk-3-0 libgtk-3-bin
  libgtk-3-common libice6 libip4tc2 libjbig0 libjson-c5 libjson-glib-1.0-0
  libjson-glib-1.0-common libkmod2 liblcms2-2 libllvm11 libmp3lame0
  libncurses6 libncursesw6 libnss-systemd libnuma1 libogg0 libopenjp2-7
  libopus0 libpam-systemd libprocps8 libproxy1v5 libpsl5 librest-0.7-0
  librsvg2-2 librsvg2-common libsensors-config libsensors5 libshine3 libsm6
  libsnappy1v5 libsoup-gnome2.4-1 libsoup2.4-1 libsoxr0 libspeex1 libsqlite3-0
  libswresample3 libtheora0 libtiff5 libtwolame0 libunwind8 libva-drm2
  libva-x11-2 libva2 libvdpau-va-gl1 libvdpau1 libvorbis0a libvorbisenc2
  libvpx6 libvulkan1 libwavpack1 libwebp6 libwebpmux3 libx11-xcb1 libx264-160
  libx265-192 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0
  libxcb-randr0 libxcb-sync1 libxcomposite1 libxdamage1 libxfont2 libxi6
  libxinerama1 libxkbfile1 libxmu6 libxmuu1 libxpm4 libxrandr2 libxshmfence1
  libxt6 libxtst6 libxvidcore4 libxxf86vm1 libz3-4 libzvbi-common libzvbi0
  locales mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers
  ocl-icd-libopencl1 procps psmisc publicsuffix systemd systemd-sysv
  systemd-timesyncd va-driver-all vdpau-driver-all x11-common x11-xkb-utils
  xauth xfonts-base xfonts-encodings xfonts-utils xserver-common xwayland
0 upgraded, 160 newly installed, 0 to remove and 0 not upgraded.
Need to get 159 MB of archives.
After this operation, 575 MB of additional disk space will be used.
E: You don't have enough free space in /var/cache/apt/archives/.
root@51800c820937:/# df
Filesystem     1K-blocks   Used Available Use% Mounted on
overlay           340144 249188     90956  74% /
tmpfs              65536      0     65536   0% /dev
/dev/mmcblk2p4     24448  24448         0 100% /opt/firmware
tmpfs             340144 249188     90956  74% /run/udev
shm                64000      0     64000   0% /dev/shm
cgroup              1024      0      1024   0% /sys/fs/cgroup
devtmpfs           10240      0     10240   0% /proc/keys
コメント

at_dominique.m…

2022年5月18日 15時52分

r_kawaiさん、

お世話になっています、
アットマークテクノのマルティネです。

> armadillo:~/work# podman load -i at-debian-image-v1.0.5.tar

Armadillo Base OS では、故障を防ぐために /rootを含め / ファイルシステムも、(デフォルトの)コンテナのストレージも overlay で tmpfs (メモリ上)になっていますので、このやり方ではメモリの容量に制限されています。

以下のディレクトリはディスクになっています:
- /var/tmp (コンテナアーカイブの一時的なデータ)
- /var/lib/containers/storage_readonly (swupdateと abos-ctrl podman-rwで操作できるコンテナイメージのストレージ)
- /var/app/volumes (コンテナでボリュームマウントに使える、アップデートの時に変更しない)
- /var/app/rollback/volumes (コンテナでボリュームマウントに使える、アップデートの時にシステムとコンテナーイメージを二重化される)

さらに、「開発モード」という、「abos-ctrl podman-storage --disk」(OSをまだ更新してなかったら「podman_switch_storage --disk」)を実行すると /var/lib/containers/storage もディスクに切り替えます。

今回はいくつかやり方ありますが、上記のコマンドでディスクに切り替えていただけたらコンテナ内の容量はeMMCの容量を使えるようになりますので、やろうとしている firefox のインストールはできると思います。
その後に swupdate でコンテナの送信などを行う予定であれば swupdate が readonly の部分しか見てないので、その時に tmpfs に戻していただいた方が上手く使えると思いますが、試す分には disk で使っていただいても問題ないです。

よろしくお願いします。

r_kawai

2022年5月18日 17時17分

マルティネ様

迅速かつ詳細なご回答を頂きましてありがとうございます。

podman_switch_storage --disk
を実行した上で
podman load -i at-debian-image-v1.0.5.tar
を行うことで、以下のようにコンテナ内の容量が増加することを確認いたしました。
また、firefoxのインストールに成功し、firefoxからウエブを閲覧できることも確認いたしました。

root@9d3f04c7d075:/# df
Filesystem     1K-blocks   Used Available Use% Mounted on
overlay          9441260 630184   8322296   8% /
tmpfs              65536      0     65536   0% /dev
tmpfs             340144   1144    339000   1% /run/udev
/dev/mmcblk2p4     24448  24448         0 100% /opt/firmware
shm                64000      0     64000   0% /dev/shm
cgroup              1024      0      1024   0% /sys/fs/cgroup
devtmpfs           10240      0     10240   0% /proc/keys

お忙しいところご対応いただきありがとうございました。