You’ve decided to Dockerize your weather-app. Before you can do this, you’ll need to create an image for it. And you’ll want to keep the image small, so you will create it using a multi-stage build.
Using instructions in a Dockerfile, build the image, then test it by creating a container that uses it.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Create a docker file
Create a docker file:
vi Dockerfile
Dockerfile contents:
FROM node AS source RUN mkdir -p /node/weather-app ADD src/ /node/weather-app WORKDIR /node/weather-app RUN npm install FROM node:alpine ARG APP_VERSION=V1.1 LABEL org.label-schema.version=$APP_VERSION ENV NODE_ENV="production" COPY --from=source /node/weather-app /node/weather-app WORKDIR /node/weather-app EXPOSE 3000 ENTRYPOINT ["./bin/www"]
- Build the image
Use Git commit hash as the image tag:
cd src git log -1 --pretty=%H cd ../
Build the image:
sudo docker image build -t linuxacademy/weather-app:[HASH] --build-arg APP_VERSION=2.0 .
- Deploy a test container using the image just created
Create the weather-app container:
sudo docker container run -d --name weather-app -p 8080:3000 linuxacademy/weather-app:<HASH>