目前在用的镜像生成方式大致为四种(本方主要讲第三种)
- 命令行方式
- shell脚本方式
- maven插件方式
- jenkins方法
- 在需要运行的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
网友评论