Ich habe einen Logstash Container, der zwei Datenquellen synchronisiert hält. Wenn es ausgeführt wird, fragt es nicht synchronisierte Einträge in einer Datenbank ab und stellt sie in die andere Datenbank ein. Ich möchte diesen Behälter sagen alle 10 Sekunden sagen.Unterstützt Docker das Neustarten von Containern alle X Sekunden
Was ich getan habe, ist --restart=always
zu spezifizieren, so dass wenn der Container austritt, er sich neu startet, was ungefähr 5 Sekunden dauert, was für diesen Anwendungsfall ein bisschen zu oft ist.
Unterstützt Docker das, was ich erreichen möchte (Warten auf X Sekunden zwischen Neustarts oder irgendeine Art von Planung) oder sollte ich die Neustart-Richtlinie entfernen und mit Cron so planen, dass sie alle 10 Sekunden ausgeführt wird?
Ich werde mit Cron neu starten. Aber ich mochte auch die Idee, 10 Sekunden zu schlafen, nachdem logstash in 'docker-entrypoint.sh' existiert, und dann den Container zu verlassen, so dass 10s übergeben werden, wenn es sofort neu gestartet wird. Ich glaube aufrichtig und unterstütze, dass Container so einfach wie möglich gehalten werden sollten und die geringste Anzahl von Dingen möglich machen, so dass ich keinen Cron in meinem Logstash Container haben möchte und afaik, ich kann die Input/Output Plugins von Logstash nicht verwenden . –
Ich stimme Ihnen zu, einige meiner Vorschläge sind eindeutig schlechte Praktiken, ich wollte nur so erschöpfend wie möglich sein. –
Sie können einen separaten verknüpften Container einrichten, um Logstash zu starten, den Zeitplan zu verwalten und einen Bericht zu erstellen, wenn er nicht erneut gestartet wird. Auf diese Weise erhalten Sie die Vorteile der Portabilität und Host-Abstraktion bei der Verwendung eines Containers. Eine andere Möglichkeit wäre, Logstash als Server einzurichten und Abfragen nach einem Zeitplan auszuführen, was auch Abstraktionsvorteile bringen könnte. – ldg