Java 镜像减肥记:Docker 多阶段构建全攻略
前言
还在用一个 Dockerfile 搞定构建和运行,结果生成一个巨无霸镜像?别怪运维同事不理你,他们怕的是镜像太胖卡住服务器。这次带你玩转 Docker 多阶段构建,手把手打造一个身材苗条、性能爆表的 Java 项目镜像。构建阶段全副武装,运行阶段轻装上阵,节省资源不止一点点。不光能跑,还能跑得又快又稳,部署上线毫无心理负担。
简介
Java 项目一般用 Maven 构建,构建过程需要 Maven 和 JDK 支持,而运行时只要轻量级的 JRE 就够用。如果你硬塞一个阶段搞定,镜像体积分分钟变成高配 RPG 游戏的资源包,动不动几百兆,吃资源不眨眼。多阶段构建就是帮你拆分构建和运行,让镜像瘦身成功,性能蹭蹭上涨。轻装上阵的镜像,更快启动,更稳健,生产环境用着更安心。
操作步骤
1.构建阶段(Build)
使用 Maven 官方镜像作为战斗堡垒,携带完整的 JDK 和构建工具,在容器内编译项目,最终产出闪闪发光的 .jar 文件。这里是重装备阶段,啥都可以带,放心“吃肉”。
2.运行阶段(Runtime)
切换到轻量级 OpenJDK 镜像,只留下那颗精华 .jar,把构建时的“胖家伙”统统扔掉。镜像瞬间瘦身,启动迅速,运行高效,堪称“健身达人”版 Java 容器。
完整代码
# 第1阶段:构建镜像
FROM maven:版本号 AS build # 使用指定版本的 Maven 镜像(已包含对应版本的 JDK)# 设置容器内的工作目录
WORKDIR