首页 > 解决方案 > 停止 Docker 容器时运行清理脚本

问题描述

我的 Dockerfile 看起来像这样:

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

startup.sh如果用户未提供任何参数,则使用默认参数调用so 。

startup.sh的是这个:

#!/bin/bash

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

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

提前致谢!马库斯

标签: bashdockersignalsbash-trap

解决方案


你试过这个方法吗?

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


推荐阅读