Existe alguma maneira de executar o postfix em primeiro plano?

3

Existe alguma maneira de executar o postfix em primeiro plano?

Eu quero executar o postfix como PID 1 no docker. e eu não quero usar qualquer shell bash, supervisorD ou qualquer wrapper para iniciá-lo. Eu só quero saber se há alguma maneira de iniciá-lo em primeiro plano para que eu possa verificar seus logs de "nome do contêiner dos registros do docker '"

Quando eu executo manualmente "início postfix" ele é executado e, em seguida, inicia em segundo plano. alguma maneira de mantê-lo em primeiro plano?

Obrigado

    
por Farhan 29.11.2017 / 20:25

3 respostas

2

O postfix precisa de um daemon syslog para registro. Para um exemplo conciso de um Dockerfile executando o Postfix , consulte jessfraz / dockerfiles / postfix .

Este executa rsyslog no contêiner e inicia o Postfix Paralelo a isso, como this :

exec /usr/lib/postfix/master -c /etc/postfix -d 2>&1
tail -F /var/log/mail.log
    
por 17.02.2018 / 01:11
6

A partir da versão 3.3 do Postfix, você também pode usar postfix start-fg , que de acordo com a documentação :

Like start, but keep the master(8) daemon running in the fore-ground

Isso torna as coisas muito mais fáceis!

    
por 11.06.2018 / 11:43
2

Se eu entendi sua pergunta, você quer executar o postfix no foregroud, então ele recebe seus logs enviados para o stdout e você pode exibi-los usando os logs do docker.

Você não pode executar o Postfix de forma que seus logs sejam enviados para o stdout. A partir dos documentos oficiais "os processos daemon Postfix são executados em segundo plano e registram problemas e atividades normais no daemon syslog.", Então o syslogd é usado pelo Postfix para gerenciar seus logs, e esse é um requisito que você não pode evitar.

Como o Docker irá "ignorar" a saída de log que não é enviada para stdout / stderr, você deve procurar por alternativas.

Esta conversa fornece mais informações sobre o requisito do postfix e do 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 logs do docker para lê-los.

Esse contêiner antigo no Docker Hub tenta fazer o que você quer, pelo menos explica o mesmo problema que você quer resolver.

Finalmente, eu achei este artigo útil (referenciado no nabble discussão) para entender o problema de obter as informações do syslogd de um contêiner.

    
por 06.12.2017 / 13:18