在eclipse里面的springboot工程自动打包成docker镜像并发送至开发服务器
在我们实际的开发过程中,为了生成项目的docker镜像,很少直接把生成应用的jar文件或者war文件再打成docker镜像,个别情况除外(至于怎样把jar文件打成docker镜像,前面博客有介绍。。。)下面试一下在开发工具里面打出镜像文件并自动上传至开发服务器。准备环境:两台虚拟服务器(192.168.169.134(开发机器)、192.168.169.133(docker私有仓库))安装好doc
在我们实际的开发过程中,为了生成项目的docker镜像,很少直接把生成应用的jar文件或者war文件再打成docker镜像,个别情况除外(至于怎样把jar文件打成docker镜像,前面博客有介绍。。。)下面试一下在开发工具里面打出镜像文件并自动上传至开发服务器。
准备环境:
两台虚拟服务器(192.168.169.134(开发机器)、192.168.169.133(docker私有仓库))安装好docker,至于怎么安装阅读前面的博客或自行search
eclipse开发工具及一个springboot工程
eclipse安装上maven插件(此处不介绍了,需要了解的请自行百度)
eclipse上安装docker插件
两个都需要安装,安装完毕重启eclipse,观察
安装成功!
1、在springboot工程的pom文件中添加配置
<build>
<!-- 打包后jar包名称 -->
<finalName>demo-app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<!--项目工程上传的docker服务器地址和端口 -->
<dockerHost>http://192.168.169.134:3456</dockerHost>
<!--docker所构建的镜像的名字 -->
<imageName>192.168.169.133:5000/${project.build.finalName}:${project.version}</imageName>
<!--构建工程镜像依赖的java基础镜像 -->
<baseImage>java:8</baseImage>
<!--初始化容器时所执行的命令:jar -jar /demo-app.jar -->
<entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<forceTags> true</forceTags>
</configuration>
</plugin>
</plugins>
</build>
添加红框里面的plugin
重点解释:
1、<finalName>demo-app</finalName>生成的jar包名称
2、<dockerHost>http://192.168.169.134:3456</dockerHost>开发服务器的链接,默认常规应该是开2375,但是这个端口特别招黑,前段时间我在腾讯云上的云服务器为了测试点东西,开了俩小时就被黑了。所以尽可能不要开这个端口,而且开其他的端口至少要在防火墙上做一下策略,这是最基本的,其他的安全策略请自行选择。
3、<imageName>192.168.169.133:5000/${project.build.finalName}:${project.version}</imageName>这个是最终生成镜像名称,因为可能后续要往私库里面上传,所以我就直接生成好了tag。
4、<baseImage>java:8</baseImage>依赖的基础镜像,等同于dockerfile里面的基础镜像。
5、<entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>容器初始化时执行的命令。
2、在开发服务器上开通网络策略和docker的远程访问策略
防火墙上开通3456端口,建议开通只针对IP开放或者网段开放,安全第一。
开通docker远程访问端口,这个地方也建议加IP或者网段限制。我这图省事就不特别设置了,而且是虚拟机,还是蛮安全的。。。。
修改后,重启docker,systemctl daemon-reload、systemctl restart docker 可以试着访问一下,看到下图就问题不大了。。
3、在eclipse上面的工程打成镜像推送至开发服务器
输入clean package docker:build -DskipTests,点run就OK了
观察控制台打出的日志,没问题
去开发服务器上观察现有的镜像。
已经上传成功!!启动试一下 docker run -p 8085:8085 --name=demo-app a3af243af995
又看到熟悉的日志了。。。成功!!,想让后台运行的话可以在构建镜像的时候加上nohup java -jar 等等一堆其他的修饰命令,这块自由发挥。
更多推荐
所有评论(0)