Deaktivieren Sie die Protokollierung für einen Container in Docker-Compose

87

Ich habe eine Webanwendung mit Docker Compose gestartet, für die ich die gesamte Protokollierung deaktivieren möchte (oder zumindest anstelle einer Datei in Syslog ausdrucken möchte).

Wenn meine Webanwendung funktioniert, kann sie beim Start schnell eine 11-GB-Protokolldatei generieren, sodass mein Speicherplatz sehr schnell aufgebraucht wird.

Ich bin mir bewusst, dass normaler Docker Protokollierungsoptionen für seinen Ausführungsbefehl hat, aber in Docker Compose verwende ich

Docker-komponieren

im Anwendungsordner, um meine Anwendung zu starten. Wie würde ich diese Funktionalität in meinem Fall aktivieren? Ich sehe nirgendwo online einen bestimmten Fall.

GreenGodot
quelle

Antworten:

162

Sie sollten in der Lage sein, die Protokollierungsfunktion zu verwenden . Versuchen Sie, den Treiber auf "none" zu setzen.

logging:
    driver: none
Fuxi
quelle
2
Der Link zu den Dokumenten wird geschätzt, aber können Sie bitte genau erklären, wie diese Option verwendet werden sollte, damit ein Container keine Protokolle schreibt? Ich setze den Treiber auf, noneaber mein Postgres-Container schreibt immer noch jede Menge Mist an stdout, während meine Tests ausgeführt werden. Sehr nervig.
Cam Jackson
1
Ich aktualisiere den Link. Hoffentlich sollte es jetzt alle Informationen haben
Fuxi
24

Für ein kurzes Konfigurationsbeispiel so etwas wie

version: '3'
services:
    'postgres':
        image: postgres:9.6
        logging:
            driver: none 

slatunje
quelle