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

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

一.引语

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

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

  • 在服务器上安装Docker,了解简单DockerFile文件编写,也可以选择让GPT生成。

  • 在本地电脑安装 IntelliJ IDEA 开发工具。

  • 能正常访问接口的SpringBoot项目,打包出jar包,此处用如下简单Demo进行演示。

13b5fd475330e86692859cb688bea1a1.jpeg

至此,准备工作已完成~

二.Jar包部署vs远程部署

Jar包部署

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

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

IDEA+Docker远程一键部署

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

67840a0c008c3f01eb42a7db3c3145ba.jpeg

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

318c2b8e8ebfb4cfe010f3eac116085e.jpeg

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

三.配置远程部署

1) 进行ssh配置

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

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

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

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

a71b5c4835adbb23cdbb2187b9f27e13.jpeg
2) 连接Docker守护进程

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

7b62a31b16506d6542471898c5e86f49.jpeg

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 文件同级目录下,例如:

d3b306c3ebd0d27baf5d25270a47f5c2.jpeg

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

4) 配置远程部署
  • 前往创建配置

0102b00f9316f349813b9225a64bb2e4.jpeg
  • 创建配置

ec08bde22e0646ebf187f9594f2604f4.jpeg
  • 根据下述步骤填写之前所进行的一系列配置即可

f8673d16bafc6930b340934eb8e52f70.jpeg
  • 至此,所有配置都已完成,最后尝试一下本文开始所述”点击绿色小三角(一步)即可自动完成项目部署“

正在上传文件~~~

5d4a1a5cf0c506cd88854eb43946580d.jpeg

已经跑起来了~~~

0bc46ba602bbc1649fe32299c5b0ba54.jpeg

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

f72c2e4a96fcd36074b2bd9172ed2b54.jpeg

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

来源:juejin.cn/post/7389168680747335717

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值