【发布时间】:2015-08-05 15:18:29
【问题描述】:
我正在使用基于debian/jessie 的图像java:7u79 在Docker 容器中运行dropwizard Java 应用程序。
我的 Java 应用程序处理 SIGTERM 信号以正常关闭。当我在没有 Docker 的情况下运行应用程序时,SIGTERM 处理非常完美。
当我在 Docker 容器中运行它时,当我发出 docker stop 命令时,SIGTERM 不会到达 Java 应用程序。它会在 10 秒后突然终止进程。
我的Dockerfile:
FROM java:7u79
COPY dropwizard-example-1.0.0.jar /opt/dropwizard/
COPY example.keystore /opt/dropwizard/
COPY example.yml /opt/dropwizard/
WORKDIR /opt/dropwizard
RUN java -jar dropwizard-example-1.0.0.jar db migrate /opt/dropwizard/example.yml
CMD java -jar dropwizard-example-1.0.0.jar server /opt/dropwizard/example.yml
EXPOSE 8080 8081
这个Dockerfile 有什么问题?有没有其他方法可以解决这个问题?
【问题讨论】:
-
您真的想在 docker build 期间(而不是在运行时)运行您的 DB 迁移吗?
标签: java docker dropwizard dockerfile