DEV Community

claudemotoba
claudemotoba

Posted on

Dockerizing your Angular application

Dockerizing an Angular application involves creating a Dockerfile that specifies the instructions for building a Docker image of your application. The Dockerfile should start with a base image, such as Node.js, and then use commands to copy the application code and dependencies into the image, and configure the image to run the application.

Here's an example of a Dockerfile that can be used to build a Docker image of an Angular application:

Use the Node.js LTS image as the base image

FROM node:14-alpine

Create a directory for the application

RUN mkdir -p /usr/src/app

Set the working directory

WORKDIR /usr/src/app

Copy the package.json and package-lock.json files

COPY package*.json ./

Install the application dependencies

RUN npm ci

Copy the rest of the application code

COPY . .

Build the application

RUN npm run build --prod

Expose port 4200

EXPOSE 4200

Start the application

CMD ["npm", "start"]

This Dockerfile starts with the Node.js LTS image, creates a directory for the application, and sets it as the working directory. Then it copies the package.json and package-lock.json files, installs the dependencies, and copies the rest of the application code. Next, it runs the npm run build --prod command to build the production version of the application. Finally, it exposes port 4200 and starts the application using the npm start command.

Once you have created the Dockerfile, you can build the Docker image by running the following command in the same directory where the Dockerfile is located:

docker build -t your_image_name

You can then run the application in a container using the following command:

docker run -p 4200:4200 your_image_name

this will make the application available at http://localhost:4200

This is just a basic example to give you an idea of what a Dockerfile for an Angular application might look like. You may need to adjust the commands to match your specific application's requirements, also you may use nginx to serve the application as well

Top comments (0)