使用maven打包springboot镜像到harbor

1,441 阅读1分钟
  • 在需要运行的maven模块根目录下创建Dockerfile文件
FROM openjdk:8-jdk-alpine
MAINTAINER xiaodx
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
VOLUME /logs
ARG JAR_FILE=target/cxs-yunying.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

  • 在需要运行的maven模块的pom.xml中增加以下两个maven插件
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

<!-- docker的maven插件,官网:https://github.com/spotify/docker‐maven‐plugin -->
<!-- Dockerfile maven plugin -->
<plugin>
	<groupId>com.spotify</groupId>
	<artifactId>dockerfile-maven-plugin</artifactId>
	<version>1.4.10</version>
	<executions>
		<execution>
		<id>default</id>
		<goals>
			<!--如果package时不想用docker打包,就注释掉这个goal-->
			<goal>build</goal>
			<goal>push</goal>
		</goals>
		</execution>
	</executions>
	<configuration>
		<!-- harbor 仓库用户名及密码-->
		<username>xiaodx</username>
		<password>Dc123456</password>
		<repository>${docker.registry}/${docker.image.prefix}/${project.artifactId}</repository>
		<tag>${project.version}</tag>
		<buildArgs>
			<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
		</buildArgs>
	</configuration>
</plugin>
  • 执行maven命令,自动生成镜像并上传至本地docker主机上(docker images 查看)
mvn install -Dmaven.test.skip=true
  • 镜像上传到harbor中:在maven插件中运行下图插件,即可将此镜像上传到harbor
    image.png