環(huán)境: Maven 3.6.1 、Docker 19.03.1
注: 這里需要使用到Docker環(huán)境,可以使用Windows本機(jī)安裝Docker環(huán)境,也可以使用遠(yuǎn)程Docker環(huán)境,開啟遠(yuǎn)程訪問,可參考 Docker安裝
1.使用插件
spotify 下有兩個(gè)Docker構(gòu)建插件:docker-maven-plugin和dockerfile-maven-plugin官方推薦使用后者
# dockerfile-maven-plugin(官方推薦使用)
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
</plugin>
2.環(huán)境變量
若使用本機(jī)安裝Docker環(huán)境構(gòu)建,可忽略此步驟
#在系統(tǒng)環(huán)境變量中添加名稱為DOCKET_HOST
DOCKER_HOST = tcp://ip:2375
3.配置項(xiàng)目
在pom.xml中添加如下:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.12</version>
<executions>
<execution>
<id>default</id>
<phase>package</phase> #綁定package,使用mvn package 命令可觸發(fā)<goal>綁定的命令
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<username>user</username> #私有倉(cāng)庫(kù)用戶名
<password>password</password> #私有倉(cāng)庫(kù)密碼
#遠(yuǎn)程倉(cāng)庫(kù)這里以阿里云鏡像倉(cāng)庫(kù)為例
<repository>registry.cn-hangzhou.aliyuncs.com/namespace/${project.artifactId}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
在項(xiàng)目根目錄添加DockerFile文件,內(nèi)容如下:
FROM java:8
ARG JAR_FILE
ADD target/${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
4.構(gòu)建項(xiàng)目
#執(zhí)行此命令會(huì)觸發(fā)dockerfile build push命令
mvn clean package
查看docker鏡像build成功,查看阿里云鏡像倉(cāng)庫(kù)推送成功