Dockerfile 多阶段构建 Docker 镜像
Docker About 750 words示例
FROM maven:3.8.5-eclipse-temurin-11-alpine AS build
WORKDIR /app
COPY src ./src
COPY pom.xml .
COPY settings.xml .
RUN mvn -s ./settings.xml -f ./pom.xml clean package -Dmaven.test.skip=true
FROM openjdk:11-jre-slim
COPY --from=build /app/target/*.jar /app/app.jar
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
解读
第一阶段
- 拉取
maven
镜像作为build
镜像 - 设置工作目录
- 拷贝当前
src
文件夹所有内容到容器的当前路径下的src
文件夹下 - 拷贝当前文件夹下的
pom.xml
文件到容器的当前文件夹下 - 拷贝当前文件夹下的
settings.xml
文件到容器的当前文件夹下 - 执行
maven
打包命令
第二阶段
- 拉取
openjdk
镜像 - 从
build
镜像的/app/target/
目录下拷贝jar
包到当前容器的/app
路径下,命名为app.jar
- 设置容器启动指令
COPY 指令
从指定阶段拷贝
从上一个阶段拷贝构建的文件到当前的新阶段。
构建阶段从0
开始,可使用AS
重命名每个阶段。
COPY --from=0
从外部镜像拷贝
COPY --from=nginx:latest /etc/nginx/nginx.conf /nginx.conf
官方文档
https://docs.docker.com/develop/develop-images/multistage-build
Views: 1,277 · Posted: 2022-11-27
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...