При разворачивании postgresql на базовый образ AltLinux в podman, столкнулся с проблема что контейнер после успешной сборки и запуска, тут же умирает. Оказывается когда postgres запускается рекомендуемыми методами, через pg_ctl иди service postgrsql start он запускается как фоновая служба, а podman почему то не держит актинвыми контейнеры в которых сложбы отвязаны от терминала и потока ввода/вывода. Если не генерировать systemd файлы то такой контейнер не будет работать :((( postgres -D $PGDATA
Поковырявшись в скрипте /etc/init.d/postgrsql, нашел что он запускается с параметрами 2>&1 < /dev/null, и сотвязкой от терминала - а занчит работает как фоновая служба. Как решение запускать postgres как foreground процесс:
Для этого в ENTRYPOINT можно добавить скрипт который будет запускать postgres. Если контейнер запускается без смены пользователя на "USER postgres" и внутри работает от root то скрипт может содержать:
#!/bin/bash
... тут по идее код для инициализации бд....
# запускаем postgres
su -l postgres -s /bin/sh -c "/usr/bin/postgres -D $PGDATA"
Пока всё это писал понял что можно сделать проще, без pg_ctl. В Conteinerfile переключиться на пользоватея postgres, а далее в скрипте entrypoint если нужно инициализирваоть базу данных, и запустить постгрес не через pg_ctl а postgres -D $PGDATA ...
(⊃。•́‿•̀。)⊃━☆゚。・:*:・゚’★,。・:*:・゚’☆*・゜゚・*☆ (•ิ_•ิ)?
Вообщем мораль такова что Podman не работает с контейнерам, в которыз служба запускается в фоне.