【问题标题】:DockerFile: on container stop. Run commands on stop signalDockerFile:在容器停止时。在停止信号上运行命令
【发布时间】:2020-04-12 09:35:06
【问题描述】:

我有一个在我的 docker 包含网站的后台运行的进程。我目前正在使用 forever npm 包来保持它的运行。

我想在容器停止/杀死时干净地清理进程。

我知道容器中启动的所有进程都应该在等待 10 秒后自动终止,但我宁愿永远告诉在这个信号上停止进程....

如何在我的 docker 文件中编写这些清理脚本以在 docker 容器关闭或终止时执行?

【问题讨论】:

    标签: docker dockerfile forever


    【解决方案1】:

    在您的脚本(入口点、命令)中,您应该使用exec command_name "$@" 运行命令,并且您的应用程序必须处理这些信号。

    【讨论】:

    • 您能解释一下exec command_name "$@" 的含义吗?美元符号和 at 符号对我来说是黑魔法
    • exec 运行您的命令并允许将发送到 docker 容器的信号发送到您正在运行的命令。如果您在前台运行 docker 并按 Ctrl+c,SIGTERM 将被发送到容器,感谢exec,您的运行命令将知道这一点。现在你必须处理那个信号。对于$@,请阅读devhints.io/bash#arguments
    • 谢谢@d0iek
    猜你喜欢
    • 2021-05-02
    • 2022-12-20
    • 1970-01-01
    • 2016-11-28
    • 2010-09-19
    • 2021-02-06
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    相关资源
    最近更新 更多