Dockerfile
FROM maven:3.5.0-jdk-8-alpine AS builder
ADD ./pom.xml pom.xml
ADD ./src src/
RUN mvn clean package
From openjdk:8-jre-alpine
COPY --from=builder target/web-site-1.0.jar web-site-1.0.jar
EXPOSE 8080
CMD [“java”, “-jar”, “-Xmx2048m”,"-Xms2048m", “web-site-1.0.jar”, “–server.port=8080”, “–use_proxy=false”]针对Java这类的编译型语言,使用Dockerfile多阶段构建,具有以下优势:保证构建镜像的安全性当您使用Dockerfile多阶段构建镜像时,需要在第一阶段选择合适的编译时基础镜像,进行代码拷贝、项目依赖下载、编译、测试、打包流程。在第二阶段选择合适的运行时基础镜像,拷贝基础阶段生成的运行时依赖文件。最终构建的镜像将不包含任何源代码信息。优化镜像的层数和体积构建的镜像仅包含基础镜像和编译制品,镜像层数少,镜像文件体积小。提升构建速度使用构建工具(Docker、Buildkit等),可以并发执行多个构建流程,缩短构建耗时。