用docker-maven-plugin推送至dockerhub

为了个人更方便地开发和部署,我使用了docker-maven-plugin推送至dockerhub,这样在自己的服务器上重新拉一下就实现了部署,非常方便

官方文档:https://github.com/spotify/docker-maven-plugin

首先设置 mavensetting.xml ,在 servers 的标签下添加:

1
2
3
4
5
6
7
8
9
10
11
<server>
<!--maven的pom中可以根据这个id找到这个server节点的配置-->
<id>docker-hub</id>
<!--这里是docker hub的账号和密码-->
<username>账号</username>
<password>密码</password>
<configuration>
<!--这是在docker hub注册时填写的邮箱-->
<email>邮箱</email>
</configuration>
</server>

以下这种方式无需编写Dockerfile,如需使用Dockerfile方式构建镜像,请参考官方文档:https://github.com/spotify/docker-maven-plugin#use-a-dockerfile

打开项目的 pom.xml ,在 build -> plugins 下面添加:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<imageName>你dockerhub的用户名/${artifactId}:${version}</imageName>
<baseImage>java</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>

<!-- 与maven配置文件settings.xml中配置的server.id一致,用于推送镜像 -->
<serverId>docker-hub</serverId>
</configuration>
</plugin>

然后用maven打包构建并推送就可以了

1
mvn clean package docker:build -DpushImage

Comments

You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.