当前位置: 代码网 > 服务器>服务器>云虚拟主机 > 详解如何将java项目打包成docker镜像并且可运行

详解如何将java项目打包成docker镜像并且可运行

2024年11月25日 云虚拟主机 我要评论
1. 确保项目已经打包成 jar 文件首先,确保已经使用 maven 或 gradle 等工具将项目打包成 jar 文件。如果使用的是 maven,可以通过以下命令打包:mvn clean packa

1. 确保项目已经打包成 jar 文件

首先,确保已经使用 maven 或 gradle 等工具将项目打包成 jar 文件。如果使用的是 maven,可以通过以下命令打包:

mvn clean package

这会在 target/ 目录下生成一个可执行的 jar 文件。

2. 编写 dockerfile

在项目的根目录下创建一个 dockerfile,内容大致如下:

# 使用 openjdk 8 基础镜像
from openjdk:8-jdk-alpine
 
# 设置工作目录
workdir /app
 
# 将所需文件和文件夹复制到容器的 /app 目录
copy target/lib /app/lib
copy target/resources /app/resources
copy target/monitor-api.jar /app/monitor-api.jar
copy target/license.json /app/license.json
copy target/license.md5 /app/license.md5
 
# 设置 spring profile 激活 dev 配置
env spring_profiles_active=dev
 
# 暴露端口 20001 和 2000
expose 20001 2000
 
# 启动 jar 文件
entrypoint ["java", "-jar", "/app/monitor-api.jar", "--spring.config.name=application-dev"]

from openjdk:17-jdk-slim:选择一个合适的 openjdk 镜像作为基础镜像。比如openjdk:8-jdk-alpine只是需要确保你的docker里已经有这个image.。如果没有可直接拉去镜像:

docker pull openjdk:8-jdk-alpine

copy target/your-project-name.jar /app/your-project-name.jar:将打包好的 jar 文件复制到 docker 容器中。

entrypoint ["java", "-jar", "/app/your-project-name.jar"]:设置容器启动时运行的命令,这里是启动 jar 文件。

expose 8080:暴露应用的端口,确保容器外部可以访问应用。

3. 构建 docker 镜像

在项目根目录下,打开终端并运行以下命令构建 docker 镜像:

docker build -t your-image-name .

这将基于 dockerfile 文件构建镜像,并将其命名为 your-image-name。

4. 运行 docker 容器

构建完成后,可以运行你的 java 应用容器:

docker run -d -p 8080:8080 your-image-name

5. 验证

现在,你应该可以通过访问 http://localhost:8080 来访问你的 java 应用。

下面是拓展内容,可各自选择是否使用multi-stage build 来优化镜像。比如说有镜像大小限制的可以参考一下进行操作:

# 第一阶段:构建阶段
from maven:3.8.6-openjdk-17-slim as build
 
workdir /app
 
copy pom.xml .
copy src ./src
 
run mvn clean package -dskiptests
 
# 第二阶段:运行阶段
from openjdk:8-jdk-alpine
 
workdir /app
 
copy --from=build /app/target/your-project-name.jar .
 
entrypoint ["java", "-jar", "your-project-name.jar"]
expose 8080

maven 和其他构建工具只存在于构建阶段,最终镜像只包含运行 jar 所需的内容。这样镜像将更加轻量。
原文链接:https://blog.csdn.net/t631048648/article/details/143802224

到此这篇关于详解如何将java项目打包成docker镜像并且可运行的文章就介绍到这了,更多相关java项目打包成docker镜像内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com