概要
・podman machineの時刻がずれていたために、稼働中のコンテナ時刻も連動して誤っており、apt-get エラーとなっていました。podman machine の再起動を実行し時刻を合わせたところ、apt-getできるようになりました。
前提・環境など
・MacOS Sonoma (14.1) Apple M1 Pro
・podman version 4.7.0
前提知識
・podman コマンド
・コンテナとlinuxの基礎
1.apt-get できない問題
[23:06:54 hoge@env]$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58b165422884 docker.io/library/httpd:latest httpd-foreground 15 hours ago Up 15 minutes httpd1
9d0e11ecf8db docker.io/library/nginx:latest nginx -g daemon o... 15 hours ago Up 15 minutes 0.0.0.0:30081->80/tcp nginxcon
7fb76635d5af docker.io/library/httpd:latest httpd-foreground 15 hours ago Up 15 minutes httpd2
[23:19:23 hoge@env]$
root@9d0e11ecf8db:/# date
Fri Dec 8 02:55:44 UTC 2023
root@9d0e11ecf8db:/# apt-get update
Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]
Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease
Reading package lists... Done
E: Release file for http://deb.debian.org/debian/dists/bookworm-updates/InRelease is not valid yet (invalid for another 5h 16min 47s). Updates for this repository will not be applied.
root@9d0e11ecf8db:/#
podman exec
してnginxcon
コンテナに入った先で、apt-get を実行しようとしたところ、
E: Release file for http://deb.debian.org/debian/dists/bookworm-updates/InRelease is not valid yet (invalid for another 5h 16min 47s). Updates for this repository will not be applied.
というエラーになっています。
2.原因調査:(コンテナ環境の時刻がずれている)
参考にしたのは以下情報
Ubuntuのapt updateのUpdates for this repository will not be appliedエラーに対処するには時刻情報を修正します。
The problem is caused by the not synced clock in Podman VM. This might happen due to the hibernation of the notebook.
The quick fix of the problem is to restart Podman’s VM:
曰く、apt-getできないのは、稼働コンテナの時刻が正しくないため。実際に#date
コマンドで確かめてみると、出鱈目なUTC時刻となっていました。
普通のOSやVMであれば、ntpq
コマンドなどを実行すれば良いという話ですが、本環境のようなpodman環境においては、コンテナはpodmanの時刻に依存しています。そのため、podman環境自体を再起動することで、時刻ずれを解消します。
(商用環境で時刻同期していないという事は無い筈なので、検証環境なので発生したトラブル、といえます。)
3.対策:podman環境の時刻を正しく修正
podman machine stop
およびpodman machine start
を実行して、時刻を修正します。
[22:57:37 hoge@env]$ podman machine stop
Waiting for VM to exit...
Machine "podman-machine-default" stopped successfully
[23:03:05 hoge@env]$ podman machine start
Starting machine "podman-machine-default"
Waiting for VM ...
(略)
Machine "podman-machine-default" started successfully
[23:03:24 hoge@env]$
再起動したので、コンテナを起動して、ホスト時刻と同期した正しい時刻であることを確認しました。
[23:06:54 hoge@env]$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58b165422884 docker.io/library/httpd:latest httpd-foreground 15 hours ago Up 15 minutes httpd1
9d0e11ecf8db docker.io/library/nginx:latest nginx -g daemon o... 15 hours ago Up 15 minutes 0.0.0.0:30081->80/tcp nginxcon
7fb76635d5af docker.io/library/httpd:latest httpd-foreground 15 hours ago Up 15 minutes httpd2
[23:19:23 hoge@env]$ date
2023年 12月 8日 金曜日 23時37分32秒 WIT
[23:37:32 hoge@env]$ podman exec -ti 9d0e11ecf8db /bin/bash
root@9d0e11ecf8db:/# date
Fri Dec 8 23:38:18 JST 2023
root@9d0e11ecf8db:/#
8db:/#
4.解決確認 (apt-getできるようになった)
無事時刻同期できたので、コンテナ内でapt-getを実行します。
root@9d0e11ecf8db:/# apt-get update
Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]
Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease
Get:4 http://deb.debian.org/debian bookworm-updates/main arm64 Packages [6672 B]
Fetched 6672 B in 1s (10.8 kB/s)
Reading package lists... Done
root@9d0e11ecf8db:/#
root@9d0e11ecf8db:/# apt-get install vim
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libsodium23 vim-common vim-runtime xxd
Suggested packages:
ctags vim-doc vim-scripts
The following NEW packages will be installed:
libsodium23 vim vim-common vim-runtime xxd
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 8776 kB of archives.
After this operation, 41.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
(略)
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
Processing triggers for libc-bin (2.36-9+deb12u3) ...
root@9d0e11ecf8db:/#
root@9d0e11ecf8db:/# which vi
/usr/bin/vi
無事 apt-get install できるようになりました。