Files
dev-toolbox/Dockerfile
T
2026-10-10 15:58:18 +08:00

21 lines
1.2 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 运行阶段:直接使用你本地已打好的 jar(放在本目录,与 Dockerfile / docker-compose.yml 同级)
# 用法:先本地执行 mvn package(JDK 21),把 target/devToolBox-1.0-SNAPSHOT.jar 复制到本目录
FROM eclipse-temurin:21-jre
WORKDIR /app
ENV TZ=Asia/Shanghai
# JVM 默认参数(4H4G + 已跑 Redis/Gitea/Ollama 的低配场景):
# -Xms256m / -Xmx512m 堆固定,避免 JVM 猜着吃;不够再上调
# ExitOnOutOfMemoryError OOM 时直接退出,交给 Docker 重启,比卡死强
# HeapDumpOnOutOfMemoryError 出事时留一份堆快照便于排查
# 想运行时调整:compose 里覆盖环境变量 JAVA_OPTS 即可
ENV JAVA_OPTS="-Xms256m -Xmx512m -XX:+ExitOnOutOfMemoryError -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof"
# 本目录下放且仅放一个 jar(.dockerignore 已排除 target/,避免误打包)
COPY *.jar app.jar
EXPOSE 8077
# sh -c "exec ..." 方式:先解析 $JAVA_OPTS,再用 exec 把 java 替换 sh 作为 PID 1,
# 这样 docker stop 发的 SIGTERM 能被 JVM 正常接收、Spring Boot 走完 shutdown hook
ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar /app/app.jar"]