Windows下,基于Gradle用Docker发布自己的程序

本文详细描述了如何在Windows上使用Gradle打包Springboot项目,生成Docker镜像,并在Linux上部署。包括解决打包后主类缺失和Dockerfile配置的问题。
摘要由CSDN通过智能技术生成

方案1:

windows下打包程序,然后,上传到linux下,生成docker镜像,然后执行。

首先:

由于是采用Gradle管理的项目,打包的时候需要执行build任务。执行完成后,再build\libs目录下应该生成项目名-0.0.1-SNAPSHOT.jar文件。如果没有该文件,尝试使用assemble任务。

在cmd下,可以尝试执行java -jar  项目名-0.0.1-SNAPSHOT.jar, 如果打包正常,程序应该能够启动。

曾经遇到的BUG是,生成的文件执行的时候找不到主类(Main.class),原因是执行的任务不对,生成的文件名(项目名-0.0.1-SNAPSHOT-plain.jar)也不对,文件名中多了一个plain。说明只是用户代码,缺少响应的spring boot的内容。

第二:

登录linux,建立一个文件夹,将打包好的jar包上传进来。

编辑Docker文件。

执行docker build命令,生成镜像。

执行docker run,

docker run -d -p 9002:8080 app:latest

指定端口。注意,左边的是暴露给外网的端口,右边是内网端口。-d表示后台运行。

方案2:

windows下安装Docker Desktop.

然后在idea的 Settings->Build-->Docker下,点击+,添加Docker。如果安装正确,系统会显示连接成功。

如图:

然后在idea的环境下,创建Dockerfile。

FROM openjdk:21
LABEL authors="ps"

# 执行维护者的信息
MAINTAINER 李晓平

# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 创建一个存放该工程的目录,将项目target目录下的jar文件复制到容器中的目录下
#RUN mkdir -p /home/lixiaoping/apps/project
#COPY build/target/libs/hydraulics4web-0.0.1-SNAPSHOT.jar /home/lixiaoping/apps/app.jar
COPY hydraulics4web-0.0.1-SNAPSHOT.jar app.jar

# 执行启动
ENTRYPOINT ["java", "-jar", "app.jar"]

注意这里面的Copy命令。原来在网上看到的是被注释掉的样子。结果执行的时候发现系统会自动地在文件路径名前面增加 /var/lib/docker/tmp/buildkit-mount2728774409 这样的一个临时路径。导致无论如何也找不到源文件。

所以,我将Dockerfile创建在了 build/llibs目录下,所有的文件都是当前目录。

这样就成了。

也期待高人指点!!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值