黑马十次方项目day09-03之 DockerMaven插件

版权声明:欢迎关注我的微信公众号 java持续实践,获取最新学习资料 https://blog.csdn.net/qq_33229669/article/details/87903576

一. 通过Maven插件自动部署

微服务部署有两种方法:
(1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚
拟机并拷贝至JDK容器。
(2)通过Maven插件自动部署。
对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这
里学习如何自动部署,这也是企业实际开发中经常使用的方法。
Maven插件自动部署步骤:
(1)修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service
在ExecStart 后面添加如下的内容
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

修改完成后, 刷新docker的配置,重启docker服务和registry, 分别执行如下的三条命令
systemctl daemon-reload
systemctl restart docker
docker start registry

二.把tensquare_config模块做成镜像

在tensquare_config模块中,在pom添加docker的插件,内容如下

<build>
        <finalName>app</finalName>
        <plugins>
            <!--SpringBoot的maven插件 -->
            <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>0.4.13</version>
                <configuration>
                    <imageName>ip:5000/${project.artifactId}:${project.version}</imageName>
                    <baseImage>jdk1.8</baseImage>
                    <!--执行java -jar的命令,打成jar包 -->
                    <entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <!--docker内进行打包 -->
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <dockerHost>http://ip:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

接着,开启tensquare_config模块所需要的服务, 由于在yml中写了mq的地址, 因此需要在docker中,开启mq的依赖.
其次,要开启docker服务器的2375端口,否则无法把镜像进行上传.在打包的时候,会出现connect timed out连接超时的错误
在idea的终端中,输入如下的命令,进行打包和镜像的上传
mvn clean package docker:build -DpushImage 如下图所示

出现如下图,代表上传镜像到docker成功了.

通过docker images命令,可以查看到已经上传的镜像.

执行如下的命令, 开启容器
docker run -di --name=tensquare_config -p 12000:12000 ip:5000/tensquare_config:1.0-SNAPSHOT
开启服务器的12000端口, 在浏览器中输入http://ip:12000/base-dev.yml
获取到的信息如下, 代表成功获取了配置文件信息. 该镜像制作成功!

猜你喜欢

转载自blog.csdn.net/qq_33229669/article/details/87903576
今日推荐