Docker build怎样实现多阶段

avatar
作者
筋斗云
阅读量:0

Docker build的多阶段构建允许你在一个Dockerfile中使用多个FROM指令,每个指令可以定义一个不同的基础镜像。这样,你可以在一个阶段安装和配置所有必要的软件,然后在另一个阶段仅复制必要的文件到最终的镜像中。这有助于减小最终镜像的大小,提高构建速度和运行效率。

以下是一个简单的多阶段构建示例:

# 第一阶段:基于Node.js构建开发环境 FROM node:14 AS builder  WORKDIR /app  COPY package*.json ./  RUN npm install  COPY . .  RUN npm run build  # 第二阶段:基于Python构建生产环境 FROM python:3.8-slim  WORKDIR /app  COPY --from=builder /app/dist /app/dist COPY --from=builder /app/node_modules /app/node_modules  CMD ["python", "app.py"] 

在这个示例中,我们使用了两个不同的基础镜像:node:14python:3.8-slim。在第一阶段,我们安装了Node.js依赖项并构建了应用程序。在第二阶段,我们仅复制了构建好的文件(dist目录)和Node.js模块到基于Python的镜像中,并设置了运行命令。

要构建这个多阶段构建的Docker镜像,请在包含Dockerfile的目录中运行以下命令:

docker build -t my-app . 

这将创建一个名为my-app的Docker镜像,其中包含了优化后的生产环境。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!