Dockerfile 分段式构建
介绍 在Docker Engine 17.05 中引入了多阶段构建 在一个Dockerfile中使用多个FROM指令,每个FROM都可以使用不同的基镜像,并且每条指令都将开始新阶段构建。在多阶段构建中,我们可以将资源从一个阶段复制到另一个阶段,在最终镜像中只保留我们所需要的内容。 Dockerfile 示例 # build ui FROM node:16 AS ui COPY ui /src RUN cd /src \ && npm config set registry http://mirrors.cloud.tencent.com/npm/ \ && npm install \ && npm run build # build server FROM maven:3.6-jdk-8 AS server COPY server /src COPY --from=ui /src/dist /src/admin/src/main/resources/public RUN cd /src && mvn clean install # build image FROM openjdk:8-jre-alpine3.9 LABEL author=Eric COPY --from=server /src/admin/target/admin.jar /opt/app.jar COPY application.yml /opt/config/application.yml WORKDIR /opt EXPOSE 8080 ENTRYPOINT ["java","-jar","app.jar", "--spring.config.location=optional:config/application.yml"] dockerfile中 FROM 指令后添加 AS <NAME>来命名构建阶段,以后的阶段中使用COPY --from=<NAME> /src/admin/target/admin.jar /opt/app.jar 从指定的阶段中复制文件; ...