RHEL9.3の謎挙動で悩んでしまった。こちらの手違いが原因かも知れないが、書いておけば誰かの役に立つかもしれんので。
nginx-proxyがdocker.soketを利用して他のコンテナと通信するので、docker-compose用のyamlは以下のようになってる。
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
で、まあこれをRHEL上で動かすのにpodman-composeでupすると、以下のエラーになる。
crun: mount `/var/run/docker.sock` to `tmp/docker.sock`: Not a directory
で、/var/runを見ると、docker.sockは/run/podman/podman.sockへのリンクなんだけど、リンク先はディレクトリになっちゃってる。同じことは/var/run/podman.sockにも言えて、こちらもディレクトリになっちゃってる。そもそもソケットなんだから、/var/run/mcelog-clientのように、ls -alしたら先頭は”d”ではなく”s”じゃないとおかしい。
んで、このディレクトリを削除して、podman.serviceを再起動してもやはりディレクトリが作成される。podman.socketだけenableして
# systemctl list-unit-files | grep podman
podman-auto-update.service disabled disabled
podman-clean-transient.service disabled disabled
podman-kube@.service disabled disabled
podman-restart.service disabled disabled
podman.service disabled disabled
podman.socket enabled disabled
podman-auto-update.timer disabled disabled
マシンごと再起動したところ、/var/run/podman/podman.sockも、/var/run/podman/podman.sockもソケットになった。
とりあえず直ったけれど、何でだろう???