Skip to content
An`s Weblog
Go back

Using Multi-Stage Builds

Mục tiêu

Multi-Stage Build là gì ?

1. Build stage:**

    - Cài dependencies, tải source, build và test.
    - Thường dùng Node đầy đủ (như `node:14`).

2. Final stage:**

    - Dùng image nhỏ hơn (như `node:alpine`).
    - Chỉ copy artifact cần thiết từ build stage.

Cấu trúc mẫu Dockerfile multi-stage

## Build stage
FROM node:14 AS build

WORKDIR /var/node
COPY ./src .
RUN npm install
RUN npm run build

## Final image
FROM node:alpine

ARG VERSION=v1.1
LABEL app.version=$VERSION
ENV NODE_ENV=production

COPY --from=build /var/node /var/node
WORKDIR /var/node
EXPOSE 3000
ENTRYPOINT ["npm", "start"]

Câu lệnh build image

docker image build -t linuxacademy/weather-app:multi-stage-build --build-arg VERSION=1.5 --rm .

Kết quả

docker image prune -f

Tổng kết lệnh

Câu lệnhMục đích
FROM ... AS nameĐặt tên cho build stage
COPY --from=nameCopy từ build stage
--build-argTruyền giá trị cho ARG
--rmXóa container trung gian sau khi build
docker image pruneXóa image trung gian, dangling

Lợi ích:


Share this post:

Previous Post
Tagging
Next Post
Updating Containers with Watchtower