Dcoker构建部署Java项目过程

news2024/11/15 12:22:44

目录

前言

一、打包

二、Docker File文件编写

一个简单的Docker File文件

三、上传文件

四、构建镜像

五、运行

六、端口开放


前言

使用Dcoker构建部署Java项目,发布到服务器


一、打包

我这里打包的是item-service这个module,clean-cpmpile-package

避坑: 像我这样的目录结构,item-service里面有引用父类的pom,并且也引用了公共组件common的pom依赖,那么,在打包item-service之前,需要现将父工程和common工程进行:clean-cpmpile-package-install,随后才可以完成打包item-service。

打包完成在target下有一个包:

这个是等会需要上传的文件。

还有一个坑是:

 item-service这个服务的pom里面需要有:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

 不然镜像构建好之后,docker run时发现报错,找不到主类。

二、Docker File文件编写

一个简单的Docker File文件

# 使用官方的OpenJDK 8作为基础镜像
FROM openjdk:8-jdk-alpine

# 将本地当前目录下的jar包复制到容器的/app路径下
COPY item-service.jar /app.jar

# 设置容器启动时运行jar包命令
ENTRYPOINT ["java", "-jar", "/app.jar"]

 COPY item-service.jar /app.jar   这一行命令的item-service.jar是我将前面打包后上传的服务名字改了,如果不改,就得写成下同的名字。

三、上传文件

将Dockerfile文件和服务的jar包上传到一个目录下:

四、构建镜像

docker build -t item-service .

 后面的item-service是镜像名字,最后又一个点,是构建在当前目录的

五、运行

docker run -d --name item-service --network demo -p 8082:8082 item-service

 这里设置了网桥,如果说你项目的其他组件,例如:MySQL、Nacos等都使用Docker部署,这些组件需要在一个网桥里面才能够互相访问,我这里是自定义了一个网桥,默认的网桥的bridge。配置网桥之后,Docker里面容器互相访问,是通过容器名字访问的,所以,yml配置文件中凡是涉及到IP地址的,都需要改为容器的名字:

 启动之后可以用docker logs + 镜像名字来查看启动日志,这个就和你在idea控制台的启动日志一样了,只要没报错就算是启动成功了,然后docker ps 看一下容器的状态ok不ok。

六、端口开放

# 开放端口
sudo firewall-cmd --add-port=8082/tcp --permanent

# 查看端口是否放行
firewall-cmd --query-port=8082/tcp

# 重启防火墙
sudo firewall-cmd --reload 

如果跟我一样买的云服务器,还要去控制台开端口。

齐活儿~

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

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

相关文章

【深度学习每日小知识】Logistic Loss 逻辑回归

逻辑回归的损失函数 线性回归的损失函数是平方损失。逻辑回归的损失函数是对数损失&#xff0c;定义如下&#xff1a; L o g L o s s ∑ ( x , y ) ∈ D − y log ⁡ ( y ′ ) − ( 1 − y ) log ⁡ ( 1 − y ′ ) LogLoss\sum_{(x,y)\in D}-y\log(y)-(1-y)\log(1-y) LogLoss…

测试老鸟汇总,接口测试总结与用例编写,一文策底概全...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、为什么要做接口…

Java SE入门及基础(9)

if选择结构 1. 基本if选择结构 语法 if ( 条件 ){ // 如果条件满足&#xff0c;则执行代码块 //代码块 } 案例 从控制台输入一个整数&#xff0c;如果该数字小于 10 &#xff0c;则输出 10 与该数字的差值。 流程图 代码实现 public class Example1 { public s…

Dart 空感知操作符:??

示例 写了如下代码&#xff1a; var str1 "hello"; var str2 "world"; var result str1 ?? str2.toUpperCase(); //如果str1不为空&#xff0c;则执行后面的语句 print(result); 代码可以正常执行&#xff0c;但是报了如下错误&#xff1a; Warnin…

【网络安全】Nessus部署自动更新和端口权限开放

文章目录 Nessus 自动更新配置Nessus服务端口开放Nessus profession 版本需要开放端口Sensor ProxyTenable Security Center (TSC)Tenable OT Security (TOT)Tenable OT Security Enterprise Manager (IEM)Tenable OT Security Industrial Core Platform (ICP)Tenable OT Secur…

kafka除了作为消息队列还能做什么?

Kafka 最初是为大规模处理日志而构建的。它可以保留消息直到过期&#xff0c;并让各个消费者按照自己的节奏提取消息。 与其之前的竞品不同&#xff0c;Kafka 不仅仅是一个消息队列&#xff0c;它还是一个适用于各种情况的开源事件流平台。 让我们回顾一下流行的 Kafka 用例。 …

基于集成学习算法XGBoost农作物产量可视化分析预测系统

文章目录 基于集成学习算法XGBoost农作物产量可视化分析预测系统一、项目简介二、开发环境三、项目技术四、功能结构五、功能实现模型构建封装类用于网格调参训练模型系统可视化数据请求接口模型评分 0.5*mse 六、系统实现七、总结 基于集成学习算法XGBoost农作物产量可视化分析…

中间人攻击如何进行防护

中间人攻击&#xff08;Man-in-the-Middle Attack&#xff0c;简称 MITM 攻击&#xff09;是一种常见的网络攻击方式&#xff0c;攻击者通过截获两个通信实体之间的通信数据&#xff0c;并在此基础上进行篡改、窃取或伪造等恶意行为。这种攻击方式因其攻击手段的隐蔽性和难以防…

2024 年1月12日最热NLP大模型论文:Transformers are Multi-State RNNs

揭秘Transformer的无限可能&#xff0c;Meta研究发现Transformer其实是多状态RNN 引言&#xff1a;重新定义Transformer的视角 在自然语言处理&#xff08;NLP&#xff09;的领域&#xff0c;Transformer架构自2017年提出以来&#xff0c;已经成为了一种主流的模型&#xff0…

呼吸道病毒感染后,为何会引发细菌性肺炎?气道和肠道微生物组改变是关键

谷禾健康 病毒-细菌合并或继发感染 引起呼吸道感染的病毒是导致全世界高发病率和死亡率的原因&#xff0c;数十年来通常发生在冬季。在冬天&#xff0c;空气干燥&#xff0c;那些可能含有病毒的飞沫可以在空气中停留更长时间&#xff0c;并可以进一步传播。此外人的免疫力在冬季…

“Frontiers”系列多本期刊分区下跌,1本SCI被踢,2本SCI升为Top,还可投吗?

近期&#xff0c;2023年中科院分区正式发布&#xff0c;不少学者都很关心期刊变动情况。此次分区更新中&#xff0c;Frontiers出版社旗下的医学期刊表现让人大跌眼镜。 据汇总来看&#xff0c;32本大类医学SCI期刊中&#xff0c;Frontiers of Hormone Research直接从原来的医学…

照片模糊如何变清晰不妨试试这款软件吧

很多人希望能把模糊的图片或照片变得很清晰&#xff0c;或者把一个只有几十KB的小图变成有几M大小的高清大图。一般来说&#xff0c;一张模糊或打了马赛克的图片本身很多细节信息就没有或被删除了&#xff0c;就像一本书缺了很多页&#xff0c;我们是可能百分百的还原出它原来的…

云服务器ECS_GPU云服务器_AIGC_弹性计算-阿里云

阿里云高性能云服务器60%单实例最大性能提升&#xff0c;35Gbps内网带宽&#xff0c;网络增强&通用型云服务器、本地SSD型云服务器、大数据型云服务器、GPU异构型云服务器&#xff0c;阿里云百科aliyunbaike.com分享阿里云高性能云服务器&#xff1a; 阿里云高性能云服务器…

小红书年终“礼物营销”玩法:种拔一体,实现品效破圈

恰逢年末&#xff0c;用户送礼需求旺盛&#xff0c;小红书推出“礼物季”&#xff0c;品牌们纷纷入局&#xff0c;话题上线18天浏览量破9亿。“礼物营销”覆盖全年营销节点&#xff0c;贯穿始终&#xff0c;礼赠场景下用户消费决策链路缩短&#xff0c;种拔一体&#xff0c;帮助…

【Golang】二进制字符串转换为数字

在本文中&#xff0c;我们将探讨如何使用 Go 语言将十六进制字符串转换为二进制字符串&#xff0c;将不定长整型补码字符串转换为数字&#xff0c;以及如何将 IEEE754 标准的单精度&#xff08;32位&#xff09;和双精度&#xff08;64位&#xff09;浮点数字符串转换为数字。最…

数据科学低代码工具思考2—现状分析

数据科学工具伴随着计算机技术的发展也在持续的演进。数据库、大数据以及人工智能等时代标志性技术的出现&#xff0c;对数据科学工具的能力也有了更高的要求。一般而言&#xff0c;工具发展的趋势都是首先会出现一个能够支持数据科学计算的开发框架&#xff0c;方便用户能够更…

GC2003七通道NPN 达林顿管,专为符合标准 TTL 而制造

GC2003 内部集成了 7 个 NPN 达林顿晶体管&#xff0c;连接的阵列&#xff0c;非常适合逻辑接口电平数字电路&#xff08;例 如 TTL&#xff0c;CMOS 或PMOS 上/NMOS&#xff09;和较高的电流/电压&#xff0c;如电灯电磁阀&#xff0c;继电器&#xff0c;打印机或其他类似的负…

PMP应试小技巧,赶紧码住!

虽然单靠应试技巧是万万不行的&#xff0c;但是在较好地掌握了项目管理知识的基础上&#xff0c;应试技巧可以使我们得到更高的分数。 1、一定要认真阅读答案的全部四个选项。千万不要看到某个选项是正确的&#xff0c;就不看其它选项&#xff0c;因为可能还有更正确的选项。P…

大数据Doris(五十四):SQL函数之日期函数(二)

文章目录 SQL函数之日期函数(二) 一、DAYOFMONTH(DATETIME date) 二、dayofweek(DATETIME date)

docker部署mongo过程

1、拉取MongoDB镜像&#xff0c;这里拉取最新版本。 docker pull mongo2、运行容器 docker run -d --name mongo -p 27017:27017 \ -e MONGO_INITDB_ROOT_USERNAMEadmin \ -e MONGO_INITDB_ROOT_PASSWORD123456 \ mongo:latest --auth#由于 mongodb 默认情况下&#xff0c;…