运行 停止 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?
如果可行,您只需更改函数内部的内容即可调用清理脚本。
我的 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?
如果可行,您只需更改函数内部的内容即可调用清理脚本。