`

Dockerfile Maven 插件使用

阅读更多

Dockerfile Maven 插件使用

这是一个将Docker与Maven无缝集成的Maven插件,可以方便地使用Maven打包Docker image(注意:原来的项目docker-maven-plugin 已经不建议使用)。

设计目标:

  • 不要试图做任何事情。 这个插件使用Dockerfiles构建Docker项目的而且是强制性的。
  • 将Docker构建过程集成到Maven构建过程中。如果绑定默认phases,那么当你键入mvn package时,你会得到一个Docker镜像。 当你键入mvn deploy时,你的图像被push。
  • 让goals记住你在做什么。 你可以输入 mvn dockerfile:build及后面的 mvn dockerfile:buildmvn dockerfile:push 都没有问题。这也消除了之前像 mvn dockerfile:build -DalsoPush这样的命令;相反,你可以只使用 mvn dockerfile:build dockerfile:push
  • 与Maven build reactor集成。你可以在一个项目中依赖另一个项目所构建的Docker image,Maven将按照正确的顺序构建项目。当你想要运行涉及多个服务的集成测试时,这非常有用。

该项目遵守 Open Code of Conduct.。 参与贡献代码,你需要遵守此代码规则。

查看更新日志以获取发布列表

Set-up

该插件需要Java 7或更高版本以及Apache Maven 3或更高版本。要运行集成测试或在开发中使用该插件,需要有一个能正常工作的Docker。

例子

<!-- docker image -->

            <plugin>

                   <groupId>com.spotify</groupId>

                   <artifactId>dockerfile-maven-plugin</artifactId>

                   <version>1.4.4</version>

                  <executions>

                       <execution>

                           <id>default</id>

                           <goals>

                               <goal>build</goal>

                               <goal>push</goal>

                           </goals>

                       </execution>

                   </executions>

                   <configuration>

                       <useMavenSettingsForAuth>true</useMavenSettingsForAuth>

                       <username>xxxxx</username>

                       <password>xxxx</password>

                       <repository>${docker.image.registryUrl}/${project.name}</repository>

                       <tag>${project.version}</tag>

                       <buildArgs>

                           <JAR_FILE>target/app-0.0.1-SNAPSHOT.jar</JAR_FILE>

                       </buildArgs>

                       <pullNewerImage>true</pullNewerImage>

                   </configuration>

                <!-- docker-maven-plugin -->

 </plugin>

 

说明:

使用该插件需要进行一下配置项设置:DOCKER_HOST环境变量设置(docker 运行所在的服务器地址)

useMavenSettingsForAuth 是使用maven 配置进行权限验证(主要用来发布到镜像仓库,例如阿里云)

<servers>

  <server>
    <id>docker.image.registryUrl</id>
    <username>admin</username>
    <password>adminpassword</password>
  </server>
</servers>

也可以直接配置:  <username>xxxxx</username> <password>xxxx</password> 如果docker 服务器进行了ssl 配置 那么需要添加证书到客户端主机上,例如我的客户端是在windows 服务器 证书放置会在C:\Users\admin\.docker,如果是jenkins 服务器是在jenkins  C:\Windows\System32\config\systemprofile\.docker

使用过程中会有遇到一些问题,这时候建议在命令行上运行命令同时-X 观看日志,这样更好定位问题;关于docker 服务器证书创建后续补上;

 

 以下是我的docker 服务器是使用阿里云ecs

 https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=nbog3w5j

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics