Introduction
A Dockerfile is a script that having the command and while deployment the docker image container We will get up and running service which configured with commands.
Prerequisites
- Basic knowledge of Docker.
- Basic knowledge of Linux commands.
Step 1: Create a nodeJS Directory
To begin, we set up a directory just for nodeJS-related files by employing the mkdir command.
mkdir nodejs
Step 2: Create a Dockerfile
Now that we have created a folder, we can use the nano editor to create a Dockerfile within that folder:
nano Dockerfile
Paste the following commands.
FROM node:latest
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Save and exit from the nano text editor.
This Dockerfile uses the latest version of the official Node.js image as the base image. The WORKDIR command sets the current working directory to /app. The COPY command copies the package*.json files from the host machine to the container’s /app directory. The RUN command runs the npm install command to install all the dependencies specified in the package.json files. The next COPY command copies all the files from the host machine to the container. The EXPOSE command tells Docker that the container will listen on port 3000. The CMD command runs the npm start command to start the Node.js application.
You may want to adjust the command according to your needs and also this is a basic setup for running a Node.js app with no additional configurations.
Step 3: Building nodeJS Docker Image
The docker build command is now used to construct the Dockerfile. within which we give our image a custom name (such as nodejs_image) and tag it with the 1.0.0 suffix.
docker build -t nodejs_image:1.0.0 .
The docker images command should be used to verify the image’s existence after it has been constructed.
We can see a list of all the images that have been created or obtained from any public or private registry using the docker images command.
Step 4: Deploy nodeJS App Container
Run the image locally as a container after it has been built:
We use detached mode to run the container continuously in the background. In the docker run command, include -d.
We provide port 3000. To have the server run on localhost, use -p 3000:3000.
As a result, the docker run command also uses the image and the tag that goes with it as input to run the container.
docker run --name custom_nodejs -d -p 3000:3000 nodejs_image:1.0.0
Step 5: Testing NodeJS App Test Page
Go to any local browser and type localhost to see if the Apache server is present.
Conclusion
We have successfully build nodeJS custom image from scratch dockerfile on ubuntu 22.04 LTS, If you still have questions, please post them in the comments section below.