Py学习  »  docker

IDEA+Docker 远程一键部署项目,真香!

GitHub猿 • 6 月前 • 260 次点击  

推荐关注

责编:猿哥 | 来源:程序员追风

链接:juejin.cn/post/7389168680747335717

往期文章:太卷了,这个资产管理系统完全免费且开源了!

正文
大家好。我是GitHub猿。

你不会还在苦哈哈的手动打出jar包,上传jar包,java -jar来部署项目吧?我不允许你不知道如何使用IDEA+Docker一键部署项目!


一.引语

本文将学习使用IDEA+Docker远程一键部署SpringBoot项目,对比上传jar包到服务器,再通过java指令运行项目,极大程度的提高了项目部署效率。可谓不用不知道,一用再也停不下来~

为了后续学习方便,需要提前进行如下和教程无关的最基本的准备:

  • 在服务器上安装Docker,了解简单DockerFile文件编写,也可以选择让GPT生成。
  • 在本地电脑安装 IntelliJ IDEA 开发工具。
  • 能正常访问接口的SpringBoot项目,打包出jar包,此处用如下简单Demo进行演示。

至此,准备工作已完成~


二.Jar包部署vs远程部署

Jar包部署

正常使用Jar包部署可以先在服务器上安装Java开发环境,之后将本地打包出来的jar包上传到服务器上,最后通过java -jar指令启动项目即可。

使用这种方式进行部署每次需要重新部署项目都要 先停止项目 -> 重新上传jar包到服务器 -> 启动项目 ,相对来说还是比较麻烦的,而且想实时查看日志也不是很方便。

IDEA+Docker远程一键部署

使用这种方式进行好一系列配置后,每次需要重新部署项目仅需点击绿色小三角(一步)即可自动完成项目部署:

同时还可以非常便捷的查看项目实时运行日志:

是不是非常方便?接下来学习一下如何进行配置~~~


三.配置远程部署

1) 进行ssh配置

由于需要连接服务器进行远程部署,因此必须先进行ssh配置(File->Settings->搜索ssh)。

为了避免不必要的麻烦,推荐在Authentication type中选择Key pair进行连接,嫌麻烦也可以直接通过Password进行连接,等后续出现连接问题再切换成key pair连接方式。

使用Key pair进行连接过程比较繁琐,可参考博客:

blog.csdn.net/cnds123321/article/details/121947896

2) 连接Docker守护进程

接下来需要配置连接Docker守护进程(File->Settings->搜索docker)来操作Docker。

Docker daemon 补充说明:

Docker daemon(或称为 Docker 守护进程)是运行在宿主机上的一个持续运行的服务,负责管理 Docker 容器的创建、运行、停止等操作。它是 Docker 引擎的核心组件之一。

Docker daemon 有以下几个主要的作用:

  • 容器管理: Docker daemon 负责管理容器的生命周期,包括创建、运行、停止、删除等操作。它接收来自 Docker 客户端的命令,并根据命令进行相应的操作,例如根据指定的镜像创建容器,启动容器的进程等。

  • 镜像管理: Docker daemon 负责管理 Docker 镜像,它可以从 Docker Hub 或其他镜像仓库中下载镜像,并根据需要构建、打包、发布和分发镜像。它还负责缓存镜像,以便在创建容器时可以快速获取需要的镜像。

  • 网络管理: Docker daemon 负责管理容器的网络。它将为每个容器分配一个唯一的 IP 地址,并为容器提供网络连接,使得容器可以与其他容器或宿主机进行通信。

  • 存储管理: Docker daemon 负责管理容器的存储,包括容器的文件系统、数据卷和容器的持久化存储等。它可以根据指定的存储驱动程序将容器的数据保存在宿主机上的文件系统中,并为容器提供数据卷,以便对容器的存储进行管理。

Docker daemon 是 Docker 引擎运行在宿主机上的核心组件,它负责处理容器管理、镜像管理、网络管理和存储管理等任务,提供了一个方便、高效、可靠的容器化平台。

3) 编写Dockerfile文件

紧接着需要编写一个用于定义和构建 Docker 镜像的文本文件,针对本教程提供如下文件进行参考,请根据自身项目情况进行调整:

# 基础镜像
FROM  openjdk:17
# 复制主机jar包至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD target/demo-0.0.1-SNAPSHOT.jar app.jar
# 容器启动执行命令
ENTRYPOINT ["java","-jar""/app.jar" , "--spring.profiles.active=prod"]
# 对外暴露的端口号
EXPOSE  8080

复制主机jar包至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下,例如:

至此准备工作已经全部完成,接下来即可正式开始配置远程一键部署~

4) 配置远程部署

  • 前往创建配置
  • 创建配置
  • 根据下述步骤填写之前所进行的一系列配置即可
  • 至此,所有配置都已完成,最后尝试一下本文开始所述”点击绿色小三角(一步)即可自动完成项目部署“

正在上传文件~~~

已经跑起来了~~~

在浏览器请求成功显示了响应结果,控制台也能看到日志输出啦~~~

至此本文教程结束。首次配置或许确实比较繁琐,但后续部署项目是真的方便,赶紧动手试一下吧~


最后,想学习这个项目的可以查看项目地址:

项目源码,怎么领取?

源码获取

牛逼啊!接私活必备的 N 个开源项目!赶快收藏

扫码下方二维码,后台回复【办公】即可获取所有系统

欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️


    

你还有什么想要补充的吗?

上周,又劝退十几个了。。。

ChatGPT 4.0 国内直接用 !!!

最后给大家推荐一个ChatGPT 4.0国内网站,是我们团队一直在使用的,我们对接是OpenAI官网的账号,给大家打造了一个一模一样ChatGPT,很多粉丝朋友现在也都通过我拿这种号,价格不贵,关键还有售后。

一句话说明:用官方一半价格的钱,一句话说明:用跟官方 ChatGPT4.0 一模一样功能,无需魔法,无视封号,不必担心次数不够。

最大优势:可实现会话隔离!突破限制:官方限制每个账号三小时可使用40次4.0本网站可实现次数上限之后,手动切换下一个未使用的账号【相当于一个4.0帐号,同享受一百个账号轮换使用权限】


为了跟上AI时代我干了一件事儿,我创建了一个知识星球社群:AI俱乐部与副业。想带着大家一起探索ChatGPT和新的AI时代

很多小伙伴搞不定ChatGPT账号,于是我们决定,凡是这三天之内加入ChatPGT的小伙伴,我们直接送一个正常可用的永久ChatGPT独立账户。

不光是增长速度最快,我们的星球品质也绝对经得起考验,短短一个月时间,我们的课程团队发布了8个专栏、18个副业项目


简单说下这个星球能给大家提供什么:


1、不断分享如何使用ChatGPT来完成各种任务,让你更高效地使用ChatGPT,以及副业思考、变现思路、创业案例、落地案例分享。

2、分享ChatGPT的使用方法、最新资讯、商业价值。

3、探讨未来关于ChatGPT的机遇,共同成长。

4、帮助大家解决ChatGPT遇到的问题。

5、提供一整年的售后服务,一起搞副业


星球福利:

1、加入星球4天后,就送ChatGPT独立账号。

2、邀请你加入ChatGPT会员交流群。

3、赠送一份完整的ChatGPT手册和66个ChatGPT副业赚钱手册。

4、赠送一个月的ChatGPT 4.0 Plus系统池账号,价值98元。

5、赠送一份总价值5000元的ChatGPT视频教程。


其它福利还在筹划中... 不过,我给你大家保证,加入星球后,收获的价值会远远大于今天加入的门票费用 !


本星球第二期原价399,目前有优惠券,早鸟价159,每超过50人涨价10元,星球马上要来一波大的涨价,如果你还在犹豫,可能最后就要以更高价格加入了。。


早就是优势。建议大家尽早以便宜的价格加入!




--END--


猿哥个人微信


添加猿哥个人微信即送一份惊喜大礼包


→ 技术资料共享

→ 技术交流社群



版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

往日文章:
牛逼啊!接私活必备的 N 个开源项目!赶快收藏吧(附源码合集第十期)!
推荐一套开源通用后台管理系统(附源码)
这个搜索工具牛逼,但是别乱搜!
看看人家那电影系统,那叫一个优雅(附源码)
推荐一款商城系统, 包含拼团、砍价、分销等功能,更适合企业或个人二次开发!

最近,GitHub猿建了一个「GitHub猿交流群」,欢迎大家一起交流优秀开源项目,也可以宣传自己的开源项目,在 「GitHub猿」公众号后台回复【加群】邀请你入群。

你点的每个赞,我都认真当成了喜欢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/178245
 
260 次点击