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

news2024/11/17 15:41:04

方案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目录下,所有的文件都是当前目录。

这样就成了。

也期待高人指点!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1656024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity Editor 找物体助手

找啊找朋友~ 🍱功能介绍🥙使用方法 🍱功能介绍 💡输入相关字符串,它会帮你找到名称中带有该字符串的所有物体,还会找包含该字符串的Text、TextMeshProUGUI。 🥙使用方法 💡导入插…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第17课-跳转用户主页

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第17课-跳转用户主页 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

45天拿下HCIE!誉天云计算 HCIE 3.0 最新通关攻略来啦!

大家好,我是誉天云计算的黄同学。历经4个半月,我成功拿下了自己的云计算HCIE证书。 从学习到备考,再到通过考试拿下证书,这整个过程中我看到了很多,也学到了很多,技术知识和思维能力都受益匪浅。以下是我在…

人工智能_大模型050_模型微调010_模型数据_模型WEB界面代码记录---人工智能工作笔记0185

上面我们把chatglm3的训练代码,和llama2的训练代码,都记录了,然后,再就是: web_demo的代码我们记录一下,然后,我们就继续说下面的内容.至于data目录中的内容,都是一些训练数据,我会 放到资源中,提供下载,这里就不贴出来了,太大了. E:\2024\人工智能\fine-tuning-lab\fine-tun…

RAC GCS_SERVER_PROCESSES参数

参考文档: GCS_SERVER_PROCESSES (oracle.com) 在awr报告中,看到addm建议如下: 其中有Global Cache Messaging和 Global Cache Congestion Activity During the Analysis Period ----------------------------------- Total database tim…

一键接入电商API数据接口1688API通过商品ID、URL采集商品详情页实时数据API接入指南

要一键接入1688电商API数据接口,并通过商品ID或URL采集商品详情页的实时数据,您可以按照以下步骤操作: 注册账号:您需要注册API账号获取必要的API凭证,如Api Key和Api Secret。选择API:根据您的需求&#…

C++学习笔记——对仿函数的理解

文章目录 思维导图仿函数出现的逻辑仿函数使用上的巧妙 仿函数的本质仿函数的优势仿函数语法的巧妙 思维导图 仿函数出现的逻辑 我们在学习stack时会遇到一些新的问题,这些问题需要我们使用非类型模板参数去解决,即我们需要在设计类时需要有一个途径去快…

【MySQL】——函数、存储过程、触发器

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

社交新时代:Facebook如何塑造我们的互动方式

在当今社交媒体充斥着人们日常生活的情况下,Facebook作为影响力最大的社交平台之一,已经深深地影响了我们的互动方式和社交行为。从初期的大学校园社交网络发展到如今的全球社交巨头,Facebook已经成为许多人日常生活中不可或缺的组成部分。本…

【软考高项】三十八、风险管理7个过程

一、规划风险管理 1、定义、作用 定义:定义如何实施项目风险管理活动的过程作用:确保风险管理的水平、方法和可见度与项目风险程度相匹配,与对组织和其他干系人的重要程度相匹配 2、输入 项目管理计划 项目章程 项目文件 干系人登记册…

初识C++ · 内存管理

目录 1 C/C的内存分布 2 C语言的内存管理 3 C的内存管理 4 operator new 和 operator delete 5 定位new 1 C/C的内存分布 语言不同,内存分布是相同的,对于局部变量都是放在栈上,全局变量都是放在静态区(数据段)&…

O2OA(翱途)支持高斯_openGauss,瀚高_HighGo,磐维_panweidb等各种国产postgres分支数据库接入

O2OA(翱途)作为一款企业级应用平台,其支持多种数据库系统是其灵活性和可扩展性的重要体现。从MySQL、Oracle到国产的达梦、神州等数据库,再到对PostgreSQL的原生支持,O2OA展现了其对不同数据库环境的良好适应性。特别地…

Vue-路由介绍

目录 一、思考引入 二、路由介绍 一、思考引入 单页面应用程序,之所以开发效率高,性能高,用户体验好,是因为页面按需更新。 而如果要按需更新,首先需要明确:访问路径和组件的对应关系。该关系通过路由来…

2024最新同城吃喝玩乐小程序源码+同城分类信息小程序搭建+开源无需授权+详细图文安装部署教程

在繁忙的都市生活中,生活节奏飞快,人们希望能够快速、便捷地获取各类生活信息,满足日常的吃喝玩乐需求。同城吃喝玩乐同城分类信息小程序,非常受欢迎,提供一站式便捷生活新体验。 分享一款2024最新同城吃喝玩乐小程序…

1707jsp电影视频网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 校园商城派送系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数…

基于springboot+mybatis+vue的项目实战之前端

步骤: 1、项目准备:新建项目,并删除自带demo程序,修改application.properties. 2、使用Apifox准备好json数据的mock地址 3、编写基于vue的静态页面 4、运行 整个的目录结构如下: 0、项目准备 新建项目&#xff0…

【可实战】被测需求理解(需求文档是啥样的、从哪些角度进行需求评审、需求分析需要分析出哪些内容、如何提高需求分析能力)

产品人员会产出一个需求文档,然后组织一个需求的宣讲。测试人员的任务就是在需求宣讲当中,分析需求有没有存在一些问题,然后在需求宣讲结束之后通过分析需求文档,分析里面的测试点并预估一个排期。 一、需求文档是什么样的&#x…

西红柿叶病害检测(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)

1.基于最新的YOLOv8训练的西红柿病害检测模型,和基于PyQt5制作的可视西红柿病害系统,包含登陆页面、注册页面和检测页面,该系统可自动检Bacterial Spot, Early_Blight, Healthy, Late_blight, Leaf Mold, Target_Spot, black spot&#xff0c…

同步时序电路的分析方法

同步时序电路的分析方法 基本步骤 Step1:写方程式 时钟方程 :各个触发器时钟信号的逻辑表达式,同步时序电路可省去不写 输出方程:时序电路的输出逻辑表达式,通常为现态和输入变量的函数 驱动方程 :各触发器…