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
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
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
This will build the service and start the container. You should then be able to access the Next.js application at http://localhost:3000
.