J'exécute Apache2 dans un conteneur Docker et je ne veux rien écrire sur le disque, en écrivant des journaux sur stdout et stderr. J'ai vu quelques façons différentes de le faire ( Supervisord et stdout / stderr , journal d'accès Apache à stdout ) mais cela ressemble à des hacks. N'y a-t-il aucun moyen de le faire par défaut?
Pour être clair, je ne veux pas réduire le journal, car cela entraînera l'écriture de choses sur le disque dans le conteneur.
apache-2.2
docker
aronchick
la source
la source
Réponses:
travaille sur ubuntu et centos fo me
la source
domain.conf
fichier ou.htaccess
si vous n'utilisez pas de fichierconf
.Que diriez-vous de placer cela dans votre Dockerfile après l'installation du paquet apache2?
En supposant que c'est le chemin des journaux. C'est pour Ubuntu 14.04 et fonctionne également pour Ubuntu 16.04.
Remarque: si vous êtes certain que les liens symboliques
/dev/stdout
ou/proc/stderr
sont là, vous pouvez également les utiliser. Je préfère le chemin vers le vrai fichier car il est garanti présent.la source
Pas spécifiquement une réponse demandée mais peut-être une meilleure façon, selon votre scénario, serait de ne pas vous connecter à stdout / stderr du tout. Il suffit de diriger les journaux vers cat au format JSON. Cela supprimerait la nécessité de différencier les flux car le json pourrait avoir les données nécessaires pour les distinguer. par exemple quelque chose dans le sens de ce qui suit. Cela peut ensuite être ingéré beaucoup plus facilement dans quelque chose comme graylog
Il existe également un module de journalisation gelf, vous pouvez donc diffuser directement depuis apache vers un serveur de type graylog si vous le souhaitez
la source