运行 停止 Docker 容器时的清理脚本

Run a cleanup script when stopping a Docker container

我的 Dockerfile 如下所示:

FROM ubuntu:latest
# ... there is more
ENTRYPOINT ["/root/startup.sh"]
CMD ["choose_random"]

因此,如果 none 由用户提供,则使用默认参数调用 startup.sh

我的startup.sh是这个:

#!/bin/bash

# init database etc.
python3 /root/boot.py 
# snmpd
/usr/sbin/snmpd -f -Lo &
# logger
tail -f /var/log/mylog.log

现在我只想在收到 SIGTERM 时调用 cleanup.py。我看到了一些示例,但我对 bash 语法的了解太少,无法真正理解并转移到我的情况中。我知道我需要一个 SIGTERM 陷阱,但我如何真正调用清理脚本等待它完成?

提前致谢! 马库斯

你试过了吗this method

如果可行,您只需更改函数内部的内容即可调用清理脚本。