Montei os logs dos meus contêineres no host (por exemplo /var/log/container1
, , etc). Agora eu quero usar o arquivo logrotate
.
Mas suponha que eu precise fazer isso:
create 660 mysql mysql
Não há mysql
usuário/grupo no host, então logrotate falha com:
usuário desconhecido 'mysql'
Então eu tentei:
create 660 999 999 # 999 is mysql user's uid/gid within container
Mas então eu recebo:
usuário desconhecido '999'
Então eu tentei:
create 660 999 999
su 999 999
Mas isso dá o mesmo erro.
Como posso fazer isso, sem criar um usuário fictício no host?
(BTW, antes que você me diga para confiar na própria rotação de log do docker ... este é apenas um exemplo. Eu uso vários contêineres que não registram em stdout/stderr, então preciso fazer a rotação de log sozinho.)
Eu acho que o problema é
logrotate
não reconhecer um uid/gid inexistente, mesmo que o sistema de arquivos o faça.Gambiarra:
Isso pode levar a uma condição de corrida.
Se você tiver uma solução melhor, por favor poste.