为什么呢?因为我propagating binds允许容器挂载一个联合文件系统,当它退出时会留下混乱。 fusermount -uz /mount/point
清理它,所以我想在退出时发生这种情况。
有没有办法为Docker容器提供退出点或退出命令?
我尝试将; echo EXITING ; myexitcmd
附加到入口点,现有命令长时间运行,但似乎没有运行。
这完全有道理,因为正在运行的是sh -c "myentrycmd; echo EXITING; myexitcmd"
,并且正是那个被杀的shell,而不是myentrycmd
。
所以解决方案不一定是特定于Docker的,我也可以用我的问题来说:我如何能够捕获所有'退出'信号,并首先完成运行我的(内联)脚本?
我也尝试过作为一个入口点:
#!/bin/sh
cleanup() {
echo EXITING
myexitcmd
}
trap 'cleanup' INT
myentrycmd
在Dockerfile中使用STOPSIGNAL SIGINT
。那里也没有雪茄。