当前位置: 首页 > news >正文

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
http://www.lryc.cn/news/600729.html

相关文章:

  • 统计学08:概率分布
  • 【SSM】第二章 网上蛋糕项目商城-首页
  • lottie 动画使用
  • MySQL数据库本地迁移到云端完整教程
  • 《每日AI-人工智能-编程日报》--2025年7月26日
  • 使用Netty搭建一个网络聊天室
  • Java面试题及详细答案120道之(041-060)
  • 图片查重从设计到实现(5)Milvus可视化工具
  • 力扣872. 叶子相似的树
  • 如何在 Ubuntu 24.04 或 22.04 中创建自定义 Bash 命令
  • Sklearn 机器学习 数值指标 entropy熵函数
  • 认识泛型、泛型类和泛型接口
  • 好的编程语言设计是用简洁清晰的原语组合复杂功能
  • 消息缓存系统
  • JavaEE初阶第十一期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(九)
  • 《计算机组成原理与汇编语言程序设计》实验报告二 基本数字逻辑及汉字显示
  • 告别配置混乱!Spring Boot 中 Properties 与 YAML 的深度解析与最佳实践
  • 非定长滑动窗口(持续更新)
  • Netty中AbstractChannelHandlerContext源码分析
  • C++连接MySQL完整教程
  • easy-llm-cli的安装和使用
  • Ubuntu安装node-red
  • 广东省省考备考(第五十七天7.26)——数量、言语(强化训练)
  • 【CTF-PWN】【攻防世界题目pwnstack】python攻击脚本ret(checksec、pwngdb、IDA)(含“/bin/sh“)
  • Traffic Lights set的使用
  • AI Agent开发学习系列 - langchain之LCEL(5):如何创建一个Agent?
  • Ansible列出常见操作系统的发行版,Ansible中使用facts变量的两种方式
  • 定义域第一题
  • InfluxDB Flux 查询协议实战应用(二)
  • 修改site-packages位置与pip配置