使用docker-maven-plugin打包

今天在部署的时候遇到点问题,总结一下,docker部署的步骤,如果对您有帮助,关注一下,就是对我最大的肯定, 谢谢!

微服务部署有两种方法:
(1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚
拟机并拷贝至JDK容器。
(2)通过Maven插件自动部署。
对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也是企业实际开发中经常使用的方法。
docker-maven-plugin的Github坐标:docker-maven-plugin
Maven插件自动部署步骤:

(1)修改宿主机的docker配置,让其可以远程访问
默认,我们的linux的 docker ,IDEA 是不可以访问的,所以需要修改下配置,让我们的IDEA 可以访问

vi /lib/systemd/system/docker.service

在 其中的ExecStart=后添加配置

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

修改后如下内容:
在这里插入图片描述
(2)刷新配置,重启服务

systemctl daemon‐reload  # 刷新服务
systemctl restart docker # 重新启动docker
docker start registry  # 启动registry

(3) 在项目中增加插件配置


    <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- docker的maven插件,官网:
            https://github.com/spotify/docker-maven-plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>192.168.100.128:5000/${project.artifactId}:${project.version}</imageName>
                    <baseImage>jdk1.8</baseImage>
                    <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>
                    <dockerHost>http://192.168.100.128:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

以上配置会自动生成Dockerfile

用法

通过运行此命令来使用上述配置构建映像。

mvn clean package docker:build

打包和上传镜像

mvn clean package docker:build -DpushImage

要仅将特定标记推送到注册表,指定请pushImageTag标记。

mvn clean package docker:build -DpushImageTag

执行打包和上传镜像后,会有如下输出,代码正在上传
在这里插入图片描述

浏览器访问 http://192.168.184.135:5000/v2/_catalog输出

{"repositories":["打包的项目名称"]}

进入宿主机 , 查看镜像,就会显示,上传的镜像了

docker images
发布了40 篇原创文章 · 获赞 112 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42897427/article/details/103875166
今日推荐