2017-04-14 4 views
0

durchaus üblich, Use-Case mit Docker-compose:Docker-compose, neue Containerversion und Protokolle Persistenz

  • Ein Code der Anwendung von einem Repository gezogen git verwenden.
  • A Docker-compose.yml wie folgt aussehen:

version: '2' services: web: build: ./myapp

Wenn ich möchte eine neue Version bereitstellen ich die neueste Version von meinem Code dann eine docker-compose up --build -d machen gerade ziehen.

Funktioniert fast perfekt, außer jedes Mal, wenn ich ein Update mache löscht es meine früheren Protokolle zugänglich . Ich verstehe, warum sich docker so verhält (auch wenn docker-compose einen Container mit dem gleichen Namen neu erstellt, ist es immer noch ein brandneuer Container, also werden logische Logs geleert). Trotzdem ist es wirklich nicht praktisch.

Hat jemand eine Lösung dafür? Vorzugsweise eine, die nicht umfasst, Bilder zu ändern oder Volumes zum Speichern von Protokollen zu verwenden. (Weil das der Hauptpunkt von Docker Logs sein sollte, muss man sich nicht darum kümmern).

Antwort

0

Sie können die Ausgabe in eine Protokolldatei umleiten, wenn die Behälter starten, so etwas wie:

docker-compose up --build --no-color --force-recreate &> logs & 

Statt docker-compose logs Sie könnten tail logs wann immer Sie wollen.

0

Ich denke, die beste Wahl einer der Logging-Treiber-Optionen auf den Docker docs beschrieben zu verwenden ist: https://docs.docker.com/engine/admin/logging/overview/

Ist dies nicht eine praktikable Lösung ist, können Sie mir ein wenig mehr Kontext für Ihre Ziele geben und Hindernisse?