如何在 Docker 中使用 forever CLI?

How to use the forever CLI in Docker?

我正在 Docker 调整我的每个项目,我使用名为 forever 的 CLI 来重新运行 我的脚本,如果它们失败了。

我正在使用 official node.js Docker tutorial to Dockerize my simpler scripts, but when I got to my more complex one (which were using the forever CLI) 我不知道如何 运行 Docker 中的 CLI。

有什么方法可以实现这一点,或者使用 forever CLI or the module?

我会重申 Oliver 的评论,因为我认为它实际上是一个有效的答案。当 运行 将进程作为 Docker 容器时,已经有一些机制可以处理 forever 为您所做的事情。

forever 动作的快速掩饰表明它实际上已经有点像 Docker:

  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

不要使用 forever 来管理您的流程,只需使用 Docker:

  • docker run--restart=always 选项与 forever 的基本概念相同,用于重新启动应用程序并在失败时保持 运行ning。
  • docker runforever start 同义。在后台添加-ddocker run到运行。
  • docker psforever list 同义。在 Docker 的情况下,只需让每个 forever 进程成为一个 Docker 容器。
  • docker logsforever logs 同义。

这应该使您的过程变得相当微不足道,只需将您的过程设为 Dockerfile 中的 CMDENTRYPOINT 并完全消除 forever

进一步,当您开始进行容器编排和部署时,请查看运行状况检查(HEALTHCHECK 说明)、Docker Swarm 和 Docker Compose。