IDEA 一键完成:打包 + 推送 + 部署docker镜像

1、本方案要解决场景?

想直接通过本地 IDEA 将最新的代码部署到远程服务器上。

2、本方案适用于什么样的项目?

  1. 项目是一个 Spring Boot 的 Java 项目。
  2. 项目用 maven 进行管理。
  3. 项目的运行基于 docker 容器(即项目将被打成 docker image,并最终以容器的方式来运行)。

3、本方案对于远程服务器的要求?

该服务器是用来最终运行项目的,所以对它的要求是:已安装了 Docker,并能够正常拉取镜像。

4、配置步骤

4.1、SSH 配置

本方案是要通过本地的 IDEA 连接远程服务器进行操作的,所以我们需要先在 IDEA 中配置一个 SSH,如下图:

找到 IDEA 的「设置」

添加 SSH 配置

4.2、Docker 配置

通过此配置,我们可以连接到远程服务器上的 Docker 守护进程(即配置了一个Docker服务器,「4.4」中会用到),如下图:

【5】中下拉列表中可选的SSH配置来自「4.1」中的配置。

4.3、SpringBoot 项目

需要注意的是用于定义和构建该项目Docker镜像的 Dockerfile 要放在项目 jar 包所在目录的同级(这里提到的项目 jar 包是通过maven package 命令生成的 jar包),否则,在通过 Dockerfile 创建镜像,执行到 ADD target/jnew-whatcell-api.jar 的时候,会出现找不到 jnew-whatcell-api.jar 的情况。

4.4、运行配置



上图中的【绑定端口】如果页面上没有该配置,可通过下图添加上:

对于以上的配置操作,我们可以这样理解:指定在一台安装了 Docker 的远程服务器上,基于「构建」中配置的信息创建一个镜像,并根据「运行」中配置的信息将此镜像运行。其中,通过「执行前」中的操作,将项目打成 jar 包,该 jar 包将在「构建」中的 Dockerfile 中使用(「4.3」中的Dockerfile)。

4.5 运行

选择「运行配置」,点击「运行」,如下图:

相关推荐
码匠许师傅16 小时前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
chuan.bai16 小时前
Java RAG 实战(第 8 篇):Spring Boot RAG 查询 API
java·spring boot·贪心算法
FlyWIHTSKY16 小时前
idea中集成claude功能
java·ide·人工智能·intellij-idea·cloudera
Java成神之路-16 小时前
Spring AI 统一结构化返回:ChatModel / ChatClient 两种实现方式
java·springaialibaba
Mr. zhihao16 小时前
深度解析:为什么Java序列化需要搭配ByteArrayOutputStream?IO装饰器模式的精妙设计
java·开发语言·装饰器模式
存在morning16 小时前
【Python 开发实践 一】Python vs Go vs Java 三门语言对比
java·python·golang
vx-程序开发17 小时前
springboot旅游推介平台---附源码24175
java·spring boot·python·spring cloud·eclipse·django·idea
倔强的石头10617 小时前
飞牛OS部署Mtab:Docker搭建自托管书签导航并实现远程访问
运维·docker·容器
艾莉丝努力练剑17 小时前
【QT:解决问题】Qt5Core.dll:无法定位程序输入点
java·开发语言·qt·学习·面试
小蒜学长17 小时前
“喵汪联盟”宠物领养系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·宠物