IDEA连接Docker实现一键化部署项目

手动部署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打包项目即可

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值