zoukankan      html  css  js  c++  java
  • 将插件绑定在某个phase执行,推送镜像

    将插件绑定在某个phase执行

    需求:在执行mvn clean package 时,插件自动为构建Docker镜像。
    实现:将插件的的goal绑定在某个phase即可。

    phase和goal可以这样理解:maven命令格式是mvn phase:goal ,例如mvn package docker:build。那么,package和docker都是phase,build则是goal。
    示例:

    <build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <excutions>
                	<excution>
                		<id>build-image</id>
                		<phase>package</phase>
                		<goals>
                			<goal>build</goal>
                		</goals>
                	</excution>
                </excutions>		
                <configuration>
                    <imageName>itmuch/discovery-eureka:0.0.1</imageName>
                    <baseImage>java</baseImage>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    由配置可知,只需添加如下配置:

     		 <excutions>
                	<excution>
                		<id>build-image</id>
                		<phase>package</phase>
                		<goals>
                			<goal>build</goal>
                		</goals>
                	</excution>
                </excutions>		
    

    就可将插件绑定在package的phase上。也就是说,用户只需执行mvn package,就会自动执行mvn docker:build。

    推送镜像

    使用Maven插件推送一个Docker 镜像到Docker Hub.

    1.修改Maven的全局配置文件settings.xml,在其中添加以下内容,配置Docker Hub的用户信息。

    <server>
    	<id>docker-hub</id>
    	<username>用户名</username>
    	<password>密码</password>
    	<configuration>
    		<email>邮箱</email>
    	</configuration>
    </server>
    

    2.修改pom.xml。

    <build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                    <imageName>itmuch/discovery-eureka:0.0.1</imageName>
                    <baseImage>java</baseImage>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
    
    			<!-- 与maven配置文件settings.xml中配置的server.id一致,用于推送镜像 -->
    			<serverId>docker-hub</serverId>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    3.执行以下命令,添加pushImage的标签,表示推送镜像。

    mvn clean package docker:build -DpushImage
    

    也可推送镜像到私有仓库,只需要将imageName指定类似如下的形式即可:

    <imageName> localhost:5000/itmuch/discovery-eureka:0.0.4</imageName>
    
    
  • 相关阅读:
    Flume入门与进阶
    git如何忽略已经加入版本控制的文件
    Redis常用命令
    如何在宝塔面板上添加创建一个定时任务
    PHP代码篇(九)PHP接口开发如何使用JWT进行验证身份
    七. Go并发编程--sync.Once
    六. Go并发编程--WaitGroup
    5. Go 并发编程--sync/atomic
    4. Go并发编程--Mutex/RWMutex
    docker内服务访问宿主机服务
  • 原文地址:https://www.cnblogs.com/aixing/p/13327488.html
Copyright © 2011-2022 走看看