maven 插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<forceTags>true</forceTags>
<pushImage>true</pushImage>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
<imageName>${docker.repository.url}/${docker.repository.namespace}/${project.artifactId}:${project.version}</imageName>
<serverId>${docker.repository.serverId}</serverId>
<registryUrl>${docker.repository.url}</registryUrl>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
dockerDirectory
标签指定了Dockerfile
存放的位置
<properties>
<docker.repository.url>registry.cn-hangzhou.aliyuncs.com</docker.repository.url>
<docker.repository.namespace>liuhongjun</docker.repository.namespace>
<docker.repository.serverId>docker-aliyun-my</docker.repository.serverId>
</properties>
docker.repository.url
阿里云仓库地址
docker.repository.namespace
阿里云仓库命名空间
docker.repository.serverId
登陆仓库的账号密码
仓库账号密码在manve
settings.xml
配置
<servers>
<server>
<id>docker-aliyun-my</id>
<username>xxxx@xxx.com</username>
<password>xxxx</password>
<configuration>
<email>xxx@xxxx.com</email>
</configuration>
</server>
</servers>
Dockerfile 文件
FROM java:8
VOLUME /tmp
# ENV TimeZone=Asia/Shanghai
# RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
使用
mvn clean package
mvn docker:build