Iniciei a imagem oficial do nginx no podman no root com o comando:
sudo podman run --name nginx \
... \
-v /var/log/nginx:/var/log/nginx \
docker.io/library/nginx:latest
Logging funcionando ok, mas ao tentar logrotate na máquina host com todas as configurações retiradas da internet ele falha, por exemplo esta:
/var/log/nginx/*.log {
hourly
missingok
rotate 24
compress
delaycompress
notifempty
su root root
create 0644
sharedscripts
postrotate
podman exec nginx /bin/bash reset_log.sh
endscript
}
O script reset_log.sh contém um comando bem conhecido para iniciar um novo log e funciona conforme o esperado se você fizer login no contêiner e executar manualmente:
kill -USR1 `cat /var/run/nginx.pid`
Mas tudo isso não funciona junto como esperado, o registro continua no arquivo access.log.1 ou nenhum registro. Tentei variantes sem 'su root root', sem 'create ..' - sem sucesso.
Atualização: parece que há um problema de permissão, precisa de mais investigação. O comando manual aplicado logrotate -f -v /etc/logrotate.conf funciona conforme o esperado. Nenhum selinux ou apparmor instalado no host (arch linux)
systemd[1]: Starting Rotate log files...
conmon[4388]: conmon 32834b35446220b4e6d4 <nwarn>: runtime stderr: setns `mnt`: Operation not permitted
fail startup
conmon[4388]: conmon 32834b35446220b4e6d4 <error>: Failed to create container: exit status 1
logrotate[4377]: Error: crun: setns `mnt`: Operation not permitted: OCI permission denied
logrotate[4374]: error: error running shared postrotate script for '/var/log/nginx/*.log '
systemd[1]: logrotate.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: logrotate.service: Failed with result 'exit-code'.
systemd[1]: Failed to start Rotate log files.