Multiple Stage Build
In this lesson, we will learn how to build smaller images using multi-stage builds.
By default, the stages are not named Stages are numbered with integers Starting with 0 for the first FROM instruction Name the stage by adding as to the FROM instruction Reference the stage name in the COPY instruction
Step 1: Set up your environment:
cd docker_imagesmkdir multi-stage-buildscd multi-stage-buildsgit clone https://github.com/nishanthkumarpathi/content-weather-app.git srcStep 2: Create the Dockerfile:
vi DockerfileStep 3: Create an image for the weather-app using multi-stage build
Dockerfile contents:
FROM node AS build
RUN mkdir -p /var/node/
ADD src/ /var/node/
WORKDIR /var/node
RUN npm install
FROM node:alpine
ARG VERSION=V1.1
LABEL org.label-schema.version=$VERSION
ENV NODE_ENV="production"
COPY --from=build /var/node /var/node
WORKDIR /var/node
EXPOSE 3000
ENTRYPOINT ["./bin/www"]Step 4: Create an image for the weather-app using multi-stage build
docker image build -t nishanthkp/weather-app:multi-stage-build --rm --build-arg VERSION=1.5 .Step 5: List images to see the size difference:
docker image lsStep 6: Create the weather-app container:
docker container run -d --name multi-stage-build -p 8087:3000 nishanthkp/weather-app:multi-stage-buildLast updated