Language and Framework Guides

Run a NodeJS Container App

8min





Docker is a technology that allows you to package and run applications in containers. Back4App Containers are based on Docker technology and use Docker containers to isolate and run the applications. This provides several benefits, such as improved performance, enhanced security, and simplified deployment and scaling.

To run a Node.js application on Back4app Containers, you need to create a Dockerfile that contains the instructions for building the Docker image. Here is a step-by-step guide on how to create a Dockerfile for a Node.js application.

At anytime if you want to check a sample working NodeJS project on Back4app containers go to : https://github.com/templates-back4app/containers-node-express-sample

1- Choose a Base Image: The first step is to choose a base image for your Dockerfile. For Node.js applications, you can use an official Node.js image from the Docker Hub. You can choose a specific version of Node.js by specifying the tag in the image name. For example, to use Node.js version 14, the first line of your Dockerfile would be:

Dockerfile


2- Set the Working Directory: Next, you need to set the working directory in the container where the application files will be located. You can use the WORKDIR instruction to set the working directory. For example:

Dockerfile


3- Copy the Application Files: Now, you need to copy the application files into the working directory. You can use the COPY instruction to copy the files. For example:

Dockerfile


4- Install Dependencies: In order to run the application, you need to install its dependencies. You can use the npm install command to install the dependencies. You can run the command in the Dockerfile using the RUN instruction. For example:

Dockerfile


5- Set Environment Variables: If your application requires environment variables to be set, you can set them in the Dockerfile using the ENV instruction. For example:

Dockerfile


6- Expose the Port: To make your application accessible from outside the container, you need to expose the port on which it is listening. You can use the EXPOSE instruction to expose the port. For example:

Dockerfile


7- Define the Entry Point: The last step is to define the entry point for the container, which is the command that will be run when the container starts. For Node.js applications, you can use the npm start command as the entry point. For example:



Dockerfile


Here is the complete Dockerfile for a simple Node.js application:

Dockerfile
Dockerfile




Once you have created the Dockerfile, you need to paste it on your projet root or on any folder(just specify that on the Root parameter on App Settings) and create or re-deploy your Application. Back4app will create a Docker image based on this file and a Container using this image. This way, you can run your Node.js application in a Bak4app Containers.