idea插件实现一键部署jar包到Docker

文章目录

    • 1、前言
    • 2、正文
    • 2.1、安装docker插件,
    • 2.2、修改docker.service文件,开放远程访问
    • 2.3、idea远程连接docker
    • 2.4、创建Dockerfile
    • 2.5、编辑docker插件的部署配置
    • 3、结语

1、前言

笔者是学生,因为看到截止目前大多数帖子写的太过潦草,或者使用的方式过于老套,所以决定写下这篇帖子,不抄袭,不转载,仅借鉴前人经验,写出优质创作。
笔者使用的是idea2022.2专业版(学生免费)

本文默认读者已经拥有以下环境:
1、一台可访问的linux/Windows/Mac主机(下面称云主机)
2、云主机已经安装docker
3、安装idea的主机可以连接到linux主机,如果使用的是云服务器,注意安全组规则配置

本文默认读者已经熟悉linux系统的基本操作命令

2、正文

2.1、安装docker插件,

高版本idea默认有docker插件,如果是低版本的话需要手动安装插件
打开idea 点击位于左上角的File–>Settings进入如下界面
idea插件实现一键部署jar包到Docker_第1张图片

然后点击Plugins,在搜索框搜索docker,点击docker安装,安装完成之后重启idea

2.2、修改docker.service文件,开放远程访问

进入云主机
输入如下命令:vi /usr/lib/systemd/system/docker.service
进入docker.service文件,在ExecStart在后面追加以下内容:
-H tcp://0.0.0.0:2375
如图
idea插件实现一键部署jar包到Docker_第2张图片

请注意,这里的0.0.0.0表示任何ip均可以访问,如果你需要考虑到安全性的话,可以只开放你的ip地址。这里还需要注意的是,要配置防火墙访问端口,如果不考虑安全性的话,可以直接关闭防火墙,输入命令:systemctl disable firewalld
熟悉Linux的同学这一步应该难不倒

2.3、idea远程连接docker

如图,Name名字可以随意取,选择TCP socket,在Engine API URL:处输入tcp://ip:2375,这里的ip就是你的云主机IP地址,其他啥都不用管,idea会自动帮你测试连接,如果成功,就会在第五个红框那里显示连接成功。如果连接不成功,大家就需要考虑安全组、防火墙或者网络连接的问题。
idea插件实现一键部署jar包到Docker_第3张图片

2.4、创建Dockerfile

在这一步中,许多帖子中的方法都是在pom.xml文件中引入docker-maven-plugin插件或者dockerfile-maven-plugin插件。
但是,安装idea的docker插件后,我们完全不需要这么繁琐,我们直接在项目的根目录下创建Dockerfile文件,记住名字一定是Dockerfile,不熟悉docker镜像构建的同学可以自行找补一下,Dockerfile文件的内容大家根据需求自行编写,我在这里提供一个模板,如下:

# 基础镜像
FROM openjdk:8
# 默认工作空间
VOLUME /tmp
# 将你本地的jar包复制到docker镜像的工作目录
ADD target/youjarname.jar app.jar
#运行的容器对外暴露的端口,这里也就是你的web服务器的访问端口,大家根据端口自行修改,也可以暴露多个端口
EXPOSE 80
#运行容器的时候将会执行java -jar app.jar命令,有需要的话,大家可以自行添加命令参数
ENTRYPOINT ["java","-jar","app.jar"]

注意,这里的youjarname是你执行maven打包命令后生成的jar包,但是我们一般打包后jar包名字不是这样的,所以我们要修改pom.xml,修改打包后的名字,如下:


    youjarname
    ...

修改之后打包后的jar包名字就叫youjarname.jar,在target目录下,大家可以根据需要自行修改youjarname的名字,总之一句话,你要清楚你打包后的jar文件名字叫啥,然后写到Dockerfile中对应的地方,名字叫啥无所谓。

2.5、编辑docker插件的部署配置

这一步是真正能够实现一键部署的最关键一步。
设想,如果我们不使用任何插件,完全手动部署的情况:
1、maven打包jar
2、将jar包上传至云主机
3、在同级目录下构建Dockerfile文件
4、执行镜像构建命令构建镜像
5、根据构建好的镜像构建容器并运行
这样的话就会很繁琐,所以这时候就可以体现出插件的功能了
我们点击位于左下底部工具栏部的Services,然后就可以看到大家在2.3步骤中的name,我的是Docker,双击Docker就可以查看该docker下的所有镜像和容器
idea插件实现一键部署jar包到Docker_第4张图片
下面重头戏来了,右键单击Docker–>Deploy->Create Dockerfile Deployment,进入如下界面
idea插件实现一键部署jar包到Docker_第5张图片
如上,如果我们已经完成了2.3,idea会自动帮你选择docker服务器,然后第一步选择Dockerfile,第二步填写docker镜像名,第三步填写容器名,第四步填写容器与云主机的端口映射,其实作到这一步就可以了,但是我们的要求是一键部署,所以我们需要把打包的步骤也完成,就是第五步,我们点哪个加号,点击Run Maven Goal,选择在部署前要进行的操作,我们选择先清除以前打包的jar文件,然后打包,即clean package,然后点击应用,确定。

idea插件实现一键部署jar包到Docker_第6张图片
idea插件实现一键部署jar包到Docker_第7张图片
到目前为之,我们一键部署就已经完成了,如果需要在运行容器时添加别的指令,在步骤三那里点击Modify可以添加其他指令。
接下来我们右键单击Docker就出现了你刚才创建的Deploy配置名,我的是Docker,点击Docker即开始一键部署,部署过程中报错一般都是基础镜像拉取失败的错误,大家根据错误日志自行解决,按照我给出的Dockerfile是不会报错的。

1更:
上面的步骤成功之后,多数人可能会遇到容器运行日志在idae控制台中文乱码的问题:解决方法在这:解决IDEA集成Docker插件后日志乱码的问题

3、结语

OK,那么现在我们就已经完成了整个idea利用docker插件一键部署jar包到Docker的配置,大家就可以方便的开发部署了,大家可以根据需求做出调整,比如一键部署时,停止并删除原来的容器,并且删除原镜像,然后再完成部署,这就需要我们修改Dockerfile,比如添加RUN参数。

作者原创不易,希望大家点赞支持。

你可能感兴趣的:(docker,intellij-idea,jar,java)