環(huán)境
- windows 10
- docker-toolbox
- virtualbox
- 阿里云容器鏡像服務(wù)
步驟
1. 編輯POM文件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<id>tag-latest</id>
<phase>deploy</phase>
<goals>
<goal>build</goal>
<goal>tag</goal>
<goal>push</goal>
</goals>
<configuration>
<tag>latest</tag>
</configuration>
</execution>
<execution>
<id>tag-version</id>
<phase>deploy</phase>
<goals>
<goal>build</goal>
<goal>tag</goal>
<goal>push</goal>
</goals>
<configuration>
<tag>${project.version}</tag>
</configuration>
</execution>
</executions>
<configuration>
<!--子用戶名@企業(yè)別名 或 子用戶名@主賬號(hào)UID-->
<username>鏡像倉庫用戶名</username>
<!--在容器鏡像服務(wù)控制臺(tái)"設(shè)置Registry登陸密碼"-->
<password>鏡像倉庫密碼</password>
<!--registry.cn-hangzhou.aliyuncs.com/namespace/repositoryname-->
<repository>鏡像倉庫地址</repository>
<tag>latest</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
2. 編輯Dockerfile
FROM java:8-jdk-alpine
ARG JAR_FILE
ADD target/${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["/usr/bin/java", "-jar", "/app.jar"]
3. 執(zhí)行構(gòu)建命令
先查看docker環(huán)境變量
$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\shiji\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
再通過命令行構(gòu)建
# 不設(shè)置環(huán)境變量會(huì)報(bào)錯(cuò):
# Connect to localhost:2375 failed: Connection refused
set DOCKER_HOST=https://192.168.99.100:2376
set DOCKER_CERT_PATH=C:\Users\shiji\.docker\machine\machines\default
# 生成jar包
mvn package -Dmaven.test.skip=true
# build image
mvn dockerfile:build
# push image
mvn dockerfile:push@tag-version
mvn dockerfile:push@tag-latest
參考資料
- 插件相關(guān)
dockerfile-maven homepage
How to define a custom docker host url?
push multiple tags - 阿里云鏡像服務(wù)與RAM子賬號(hào)
鏡像基本操作
倉庫訪問控制