Maven+Docker,发布到Registry

1、配置Pom.xml

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <docker.repostory>registry.cn-hangzhou.aliyuncs.com</docker.repostory>
  <docker.registry.name>kingsy</docker.registry.name>
</properties>
<build>
	<finalName>app</finalName>
	<plugins>
		<!-- 生成Jar包 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-jar-plugin</artifactId>
			<version>2.4</version>
			<configuration>
				<archive>
					<manifest>
						<addClasspath>true</addClasspath>
						<classpathPrefix>lib/</classpathPrefix>
						<mainClass>org.demo.docker_package.App</mainClass>
					</manifest>
				</archive>
			</configuration>
		</plugin>
		<!-- 打包Docker -->
		<plugin>
			<groupId>com.spotify</groupId>
			<artifactId>docker-maven-plugin</artifactId>
			<version>0.4.13</version>
			<executions>
				<execution>
					<id>build-image</id>
					<phase>package</phase>
					<goals>
						<goal>build</goal>
					</goals>
				</execution>
				<execution>
					<id>tag-image</id>
					<phase>package</phase>
					<goals>
						<goal>tag</goal>
					</goals>
					 <configuration>
                         <image>${docker.registry.name}/${project.artifactId}:${project.version}</image>
                        <newName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}</newName>
                    </configuration>
				</execution>
				 <execution>
                    <id>push-image</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>push</goal>
                    </goals>
                    <configuration>
                        <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}</imageName>
                    </configuration>
                </execution>    
			</executions>
			<configuration>
				<serverId>docker-aliyun</serverId>
                <registryUrl>registry.cn-hangzhou.aliyuncs.com</registryUrl>
				<pushImage>true</pushImage>
				<dockerDirectory>${project.basedir}</dockerDirectory>
				<imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}</imageName>
				<imageTags>
                    <imageTag>latest</imageTag>
                </imageTags>
				<resources>
			      <resource>
			        <targetPath>/</targetPath>
			        <directory>${project.build.directory}</directory>
			        <include>${project.build.finalName}.jar</include>
			      </resource>
			    </resources>
			</configuration>
		</plugin>
	</plugins>
</build>

二、创建Dockerfile

FROM java:7
ADD target/app.jar /home
WORKDIR /home
ENTRYPOINT ["java","-jar","app.jar"]

三、修改~/.m2/settings.xml

<settings>
     <server>
      <id>docker-aliyun</id>
      <username>kingsylin@vip.qq.com</username>
      <password>密码</password>
      <configuration>
            <email>kingsylin@vip.qq.com</email>
      </configuration>
    </server>
</settings>

四、执行maven命令

clean install

  

posted @ 2017-02-17 20:03  kingsy.lin  阅读(8984)  评论(0编辑  收藏  举报