Podman 上のコンテナでapt-getできない


#### 概要
・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.原因調査：(コンテナ環境の時刻がずれている)
参考にしたのは以下情報
- [Linux：Ubuntuのapt updateのUpdates for this repository will not be appliedエラーに対処する方法](https://motamemo.com/linux/linux-tips/linux-ubuntu-apt-update-not-be-applied-error/)
> Ubuntuのapt updateのUpdates for this repository will not be appliedエラーに対処するには時刻情報を修正します。


- [Podman Debian apt-get update fails with “InRelease is not valid yet”](https://georgik.rocks/podman-debian-apt-get-fails-with-inrelease-is-not-valid-yet/)

>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 できるようになりました。