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