在 Dockerfile 中使用 AS(或 as)关键字可以创建一个多阶段构建(multi-stage build)。
多阶段构建是一种将应用程序的构建过程分解为多个阶段(stage)的技术,每个阶段使用不同的基础镜像和指令来完成特定的任务。
在多阶段构建中,可以使用 AS 关键字指定构建阶段的名称,然后在后续阶段中引用它们。
例如,以下是一个包含两个构建阶段的 Dockerfile:
# 第一阶段:构建应用程序
FROM node:14-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# 第二阶段:运行应用程序
FROM nginx:1.21-alpine
COPY --from=builder /app/dist /usr/share/nginx/html
在这个 Dockerfile 中,第一阶段使用 node:14-alpine 镜像作为基础镜像,创建了一个名为 builder 的构建阶段。在该阶段中,执行了一系列指令来构建应用程序,并生成了编译后的代码。
第二阶段使用 nginx:1.21-alpine 镜像作为基础镜像,并使用 COPY --from=builder
指令从第一阶段中拷贝编译后的代码到 nginx 容器中,从而运行应用程序。
在这个例子中,AS 关键字用于给第一阶段命名为 builder,以便在第二阶段中使用 COPY --from=builder
来引用该阶段中的构建结果。