有没有一种方法可以使用Dockerfile或在docker-compose.yml中使用Docker Compose在容器停止上运行命令?本质上,我想要一个在容器退出时运行的命令(与ENTRYPOINT相反)。
发布于 2018-08-19 23:45:10
当然,入口点可以做到这一点。它将CMD作为命令行参数。通常,您的入口点脚本在完成设置后会想要exec "$@"来运行CMD,但是如果您愿意承担作为进程ID 1的责任,您可以将CMD作为一个子进程运行,然后再做一些事情。
#!/bin/sh
echo "BEFORE"
"$@"
STATUS=$?
echo "AFTER"
exit $STATUS请注意,由于您的文件系统即将消失,您在终止时可以做的事情非常有限。
还请注意,这需要您以CMD的身份运行您的“正常”进程,但出于这样的原因,我倾向于认为这在任何情况下都是更好的实践。您的Dockerfile将如下所示
...
COPY entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]
CMD ["whateverd", "--foreground"]https://stackoverflow.com/questions/51919217
复制相似问题