Existe alguma maneira de executar o Postfix em primeiro plano?
Eu quero executar o Postfix como PID 1 no docker. Não quero usar nenhum shell bash, supervisorD ou qualquer wrapper para iniciá-lo.
Eu só quero saber se existe alguma maneira de iniciá-lo em primeiro plano para que eu possa verificar seus logs de "docker logs 'container-name'"
Quando executo manualmente o "postfix start", ele é executado e iniciado em segundo plano. Alguma maneira de mantê-lo em primeiro plano?
Obrigado
A partir do Postfix versão 3.3, você também pode usar
postfix start-fg
, que de acordo com a documentação :Facilita muito as coisas!
Desde o Postfix 3.3, o docker é suportado nativamente. Simplesmente construa e execute este Dockerfile:
O Postfix precisa de um daemon syslog para registro. Para um exemplo conciso de um
Dockerfile
Postfix em execução , veja jessfraz/dockerfiles/postfix .Isso é executado
rsyslog
no contêiner e inicia o Postfix paralelo a isso assim :Se eu entendi sua pergunta, você deseja executar o postfix no foregroud, para que seus logs sejam enviados para o stdout e você possa exibi-los usando os logs do docker.
Você não pode executar o Postfix de forma que seus logs sejam enviados para o stdout. Dos documentos oficiais "Os processos do daemon do Postfix são executados em segundo plano e registram problemas e atividades normais no daemon syslog.", portanto, o syslogd é usado pelo Postfix para gerenciar seus logs, e esse é um requisito que você não pode evitar.
Como o Docker "ignora" a saída de log que não é enviada para stdout/stderr, você deve procurar alternativas.
Esta conversa fornece mais informações sobre os requisitos de postfix e syslogd e possíveis estratégias no Docker. Basicamente, ele tentará enviar a saída do syslog para os arquivos de log do syslog do seu host, mas você não poderá usar os logs do docker para lê-los.
Esse container antigo no Docker Hub tenta fazer o que você quer, pelo menos explica o mesmo problema que você quer resolver.
Finalmente, achei este artigo útil (referenciado na discussão do nabble) para entender o problema de obter as informações do syslogd de um contêiner.
Desde o Postfix 3.4, isso é suportado corretamente, eliminando uma dependência do syslog.
Trecho de postfix/MAILLOG_README :
Meu ponto de entrada do Docker para iniciar o Postfix aproveita
postconf
para corrigir a configuração conforme descrito: