之前参考别人写的教程,发现还是很多坑…
自己留点东西哈.
要实现maven 自动打包到harbor仓库有一下几个步骤:
- maven 配置文件settings.xml加入Harbor的服务信息:
<server>
<!--maven的pom中可以根据这个id找到这个server节点的配置-->
<id>docker-harbor</id>
<username>admin</username>
<password>password</password>
<configuration>
<email>somebody@mail.com</email>
</configuration>
</server>
- 在pom.xml文件中加入配置:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<docker.repostory>192.168.108.131</docker.repostory>
<docker.registry.name>library</docker.registry.name>
</properties>
........
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}</imageName>
<!-- 指定Dockerfile所在的路径 -->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<dockerHost>http://192.168.108.131:2375</dockerHost>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<serverId>docker-harbor</serverId>
<registryUrl>${docker.repostory}</registryUrl>
<pushImage>true</pushImage>
</configuration>
</plugin>
</plugins>
</build>
- 编写Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD workplace/target/*jar app.jar
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
- 最后就是运行命令行:
mvn clean package docker:build -e
`