手动部署SpringBoot项目方式
1.将SpringBoot项目打成一个jar包
2.手动编写一个Dockerfile文件,构建镜像
如果使用IDEA中的插件的话,可以自动生成Dockerfile文件,实现一键化部署项目.
1.IDEA中下载插件
在settings中下载插件Docker
2.修改Linux中的docker配置文件
打开这个配置文件
vim /usr/lib/systemd/system/docker.service
在图中位置添加这样一句配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
之后重启配置文件以及docker
systemctl daemon-reload
service docker restart
重启之后测试远程连接是否正常,这里的2375是之前配置的端口:
curl http://localhost:2375/version
出现如下返回信息,代表没有问题了:
3.在IDEA中连接Docker的远程ip地址
开启2375的端口:
firewall-cmd --zone=public --add-port=2375/tcp --permanent
或者直接关闭防火墙:
systemctl stop firewalld
同时我们也可以设置国内的镜像:
(这里我采用阿里云镜像)
设置成功后,出现一下界面,代表连接成功(此时我们的IDEA可被认为是docker的可视化界面):
4.实现一键化部署项目
在我们项目中的pom文件中加上如下插件:(不要全粘贴,注意修改)
<build>
<!-- 引用我们的项目名字 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<!-- 跳过单元测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的镜像名-->
<imageName>leon/${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--指定基础镜像jdk1.8-->
<baseImage>java</baseImage>
<!--镜像制作人本人信息-->
<maintainer>bruceliu@email.com</maintainer>
<!--切换到ROOT目录-->
<workdir>/ROOT</workdir>
<cmd>["java", "-version"]</cmd>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<!--指定远程 docker api地址-->
<dockerHost>http://122.51.50.249:2375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的文件 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
然后直接点击maven中的package打包项目即可