DEV Community

Cover image for Next.js and Docker configuration
Jahidul Islam (Saeid)
Jahidul Islam (Saeid)

Posted on

Next.js and Docker configuration

To configure a Docker container for a Next.js application, you will need to create a Dockerfile and a docker-compose.yml file.

Here is an example Dockerfile that you can use as a starting point:

FROM node:latest

WORKDIR ./app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD npm run dev

Enter fullscreen mode Exit fullscreen mode

This Dockerfile starts from the node:latest base image, which is a latest version of Node.js. It then sets the working directory to /app and copies the package.json file to the container. It runs npm install to install the dependencies of the application. Finally, it copies the rest of the application code to the container and exposes the default Next.js port (3000) and runs the npm run dev command to start the application in development mode.

To build and run the container, you can use the following commands:

version: "3.3"

services:
  nextjs:
    ports:
      - 3000:3000
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/app
Enter fullscreen mode Exit fullscreen mode

This docker-compose.yml file defines a single service called nextjs, which is built from the Dockerfile in the current directory. It exposes the container's port 3000 on the host's port 3000 and mounts the current directory and the node_modules directory as volumes in the container. This allows you to make changes to the code and have them reflected in the running container without having to rebuild the image.

To build and run the container, you can use the following commands:

$ docker-compose build
$ docker-compose up
Enter fullscreen mode Exit fullscreen mode

This will build the service and start the container. You should then be able to access the Next.js application at http://localhost:3000.

Top comments (0)