DockerMaven插件

DockerMaven插件

插件官方地址:

https://github.com/spotify/dockerfile-maven

项目部署有两种方法:

(1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚拟机并拷贝至JDK容器。

(2)通过Maven插件自动部署。

对于数量众多的项目,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也是企业实际开发中经常使用的方法。

 

使用该插件时,有一些注意事项

  1. 该插件依赖一台装有Docker daemon的Host完成镜像的构建

  2. 由于该插件需要访问Docker Host,因此要求Docker Host打开TCP管理端口,并允许访问

  3. 使用该插件的机器需要配置DOCKER_HOST选项,指向Docker Host对应端口

  4. 该插件构建和发布镜像依赖于镜像仓库,需要用户提供镜像仓库的登录信息,支持POM设置和Settings设置

     

Maven插件自动部署步骤:

(1)修改宿主机的docker配置,让其可以远程访问

vi /lib/systemd/system/docker.service

其中ExecStart=后添加配置-H tcp://0.0.0.0:2375开启远程API访问端口

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

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

#重新加载配置
systemctl daemon-reload 
#重启docker
systemctl restart docker 
#重启私有仓库
docker start registry
#开放2375端口
firewall-cmd --permanent --add-port=2375/tcp
#重启防火墙
firewall-cmd --reload
#测试是否配置成功
curl http://127.0.0.1:2375/version

(3)修改1 pom.xml 本机不需要安装docker,直接连接服务器操作

这种方式不需要dockerfile直接生成一个dockerfile

            <!-- 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.222.100:5000/${project.artifactId}</imageName>
                    <baseImage>centos</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.100:2375/</dockerHost>
                </configuration>
            </plugin>

在命令控制台运行如下的命令,即可完成生成镜像并且上传到私有仓库

mvn clean package docker:build -DpushImage

上述命令的解析如下:

mvn clean package`:maven打jar包

docker:build docker构建镜像的命令

-DpushImage 将生成的镜像上传到私有仓库中

 

(3)修改2 pom.xml 本机需要安装docker,连接本机docker客户端操作

        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.3.4</version>
            <configuration>
                <repository>192.168.222.100:5000/demo</repository>
            </configuration>
        </plugin>

修改docker for window

加以下内容,保存退出。

将私有仓库添加信任,这样才能上传镜像到私有仓库。

{
  "registry-mirrors": ["https://72idtxd8.mirror.aliyuncs.com"]
  "insecure-registries":["192.168.222.100:5000"]
}

此步用于让 docker信任私有仓库地址

然后执行插件。

 

在实际开发中,我们不太用这种插件模式。

基本上都是在打包服务器,通过Jenkins自动化工具,来操作自动生成docker镜像。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值