Estou executando o Apache2 em um contêiner docker e não quero gravar nada no disco, gravando logs em stdout e stderr. Eu vi algumas maneiras diferentes de fazer isso ( Supervisord e stdout/stderr , log de acesso do Apache para stdout ), mas parecem hacks. Não há como fazer isso por padrão?
Para ser claro, não quero seguir o log, pois isso resultará na gravação de coisas no disco do contêiner.
funciona no ubuntu e centos para mim
Que tal colocar isso no seu Dockerfile após a instalação do pacote apache2?
Supondo que este seja o caminho dos logs. É para o Ubuntu 14.04 e também funciona para o Ubuntu 16.04.
Observação: se você tiver certeza de que os links simbólicos
/dev/stdout
ou/proc/stderr
estão lá, também poderá usá-los. Eu prefiro o caminho para o arquivo real, pois isso é garantido.Não especificamente uma resposta solicitada, mas talvez uma maneira melhor, dependendo do seu cenário, seria não fazer login em stdout/stderr. Basta canalizar os logs para cat em um formato JSON. Isso removeria a necessidade de diferenciar os fluxos, pois o json poderia ter os dados necessários para distingui-los. por exemplo, algo ao longo das linhas do seguinte. Isso pode ser ingerido muito mais facilmente em algo como graylog
Há também um módulo de registro gelf, para que você possa transmitir diretamente do apache para um servidor do tipo graylog, se desejar