2017-07-05 6 views
0

Ich bin Dockerizing jedes Projekt von mir und ich verwende eine CLI namens forever, um meine Skripts neu zu starten, wenn sie fehlschlagen.Wie verwende ich die CLI für immer in Docker?

Ich verwendete die official node.js Docker tutorial, um meine einfacheren Skripte zu dockerisieren, aber als ich zu meinem komplexeren kam (die the forever CLI verwendeten), wusste ich nicht, wie ich die CLI in Docker laufen ließ.

Gibt es eine Möglichkeit, dies zu ermöglichen, entweder mit der forever CLI oder the module?

+0

Warum probierst du 'pm2' nicht? –

+4

Es kann sinnvoller sein, vorhandene Docker-Funktionalität dafür zu verwenden - speziell [' --restart always'] (https://docs.docker.com/engine/admin/start- Container-automatisch /). –

+0

@Niraj Ich brauche und möchte Docker verwenden. – skiilaa

Antwort

1

Ich werde Oliver's Kommentar wiederholen, wie ich denke, dass es tatsächlich eine gültige Antwort ist. Wenn Sie einen Prozess als Docker-Container ausführen, gibt es Mechanismen, die bereits funktionieren, was forever für Sie erledigt.

Ein kurzer Glanz über die forever Aktionen zeigt, dass es eigentlich schon ein bisschen wie Docker aussieht:

actions: 
    start    Start SCRIPT as a daemon 
    stop    Stop the daemon SCRIPT by Id|Uid|Pid|Index|Script 
    stopall    Stop all running forever scripts 
    restart    Restart the daemon SCRIPT 
    restartall   Restart all running forever scripts 
    list    List all running forever scripts 
    config    Lists all forever user configuration 
    set <key> <val>  Sets the specified forever config <key> 
    clear <key>   Clears the specified forever config <key> 
    logs    Lists log files for all forever processes 
    logs <script|index> Tails the logs for <script|index> 
    columns add <col> Adds the specified column to the output in `forever list` 
    columns rm <col> Removed the specified column from the output in `forever list` 
    columns set <cols> Set all columns for the output in `forever list` 
    cleanlogs   [CAREFUL] Deletes all historical forever log files 

Statt forever der mit Ihrem Prozess zu verwalten, benutzen Sie einfach Docker:

  • Die --restart=always Option für docker run ist das gleiche zugrunde liegende Konzept von forever, um die Anwendung neu zu starten und es weiterlaufen zu lassen, sollte es fehlschlagen.
  • docker run ist auch mit forever start. Fügen Sie -d zu docker run hinzu, um im Hintergrund zu laufen.
  • docker ps ist auch mit forever list. Im Fall von Docker machen Sie einfach jeden Ihrer forever Prozesse zu einem Docker-Container.
  • docker logs ist auch mit forever logs.

Dies sollte es ziemlich trivial machen nur Ihren Prozess im Dockerfile die CMD oder ENTRYPOINT zu machen und tun, weg völlig wth forever.

Weiter unten, wenn Sie beginnen, in Container-Orchestrierung und Bereitstellung zu gelangen, sehen Sie sich Health Checks (HEALTHCHECK Anweisung), Docker Swarm und Docker Compose.

Verwandte Themen