持续集成与容器管理

狂风中的少年 提交于 2019-12-06 07:59:48

1.DockerMaven 插件

 

微服务部署有两种方法:

(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

(2)刷新配置,重启服务

systemctl daemon-reload
systemctl restart docker
docker start registry

(3)在工程pom.xml增加配置

<build>  <finalName>app</finalName>  <plugins>    <plugin>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-maven-plugin</artifactId>    </plugin>    <!--docker的maven插件,官网:https://giithub.com/spotify/docker-maven-plugin-->    <plugin>      <groupId>com.spotify</groupId>      <artifactId>docker-maven-plugin</artifactId>      <version>0.4.13</version>      <configuration>        <imageName>192.168.222.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.222.128</dockerHost>      </configuration>    </plugin>  </plugins></build>

以上配置会自动生成Dockerfile

FROM jdk1.8
ADD app.jar /
ENTRYPOINT ["java","-jar","/app.jar"]

(5)在命令提示符,进入工程所在目录,输入以下命令,进行打包和上传镜像

mvn clean package docker:build -DpushImage

浏览器访问192.168.222.128:5000/v2/_catalog,输出中含有上传的文件则说明上传成功

(6)进入宿主机,查看镜像

dockers images

(7)启动容器

docker run -di --name=base -p 9001:9001 192.168.222.128:5000/文件_bash:1.0-SUAPSHOT

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!