【发布时间】:2020-03-13 13:39:19
【问题描述】:
我在我的 Spring 应用程序中实现了正常关闭逻辑,如果我向 Java 进程发送 SIGTERM,它就可以在本地工作。
但是,当我在 Kubernetes 中运行它时,如果我删除了 pod 或部署了一个新 pod,则逻辑不会运行。首先我认为它发送的是 SIGKILL 而不是 SIGTERM 但正如我所研究的那样,Docker CMD 获取 SIGTERM 但不会将其委托给应用程序。应该如何正确运行?
现在我在我的 Dockerfile 中使用这个命令:
CMD [ "java", "-jar", "/app.jar" ]
【问题讨论】:
-
@Oleg Butuzov 您能否扩展您的评论并将其作为答案发布?
-
@OlegButuzov 谢谢,我发现关于 SIGTERM 的文章未授权,但不幸的是我无法让它工作。你能解释一下如何编辑 Dockerfile 吗?我正在使用 Alpine 基础映像。
标签: java spring docker kubernetes