28 lines
596 B
Docker
28 lines
596 B
Docker
# Use the official Node.js image as a base image
|
|
FROM node:18-alpine
|
|
|
|
# Set the working directory inside the container
|
|
WORKDIR /app
|
|
|
|
# Copy the package.json and pnpm-lock.yaml first to install dependencies (helps with caching)
|
|
COPY package.json pnpm-lock.yaml ./
|
|
|
|
# Install pnpm globally
|
|
RUN npm install -g pnpm
|
|
|
|
# Install project dependencies
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
# Copy the rest of the application code
|
|
COPY . .
|
|
|
|
# Build the Next.js app
|
|
RUN pnpm build
|
|
|
|
# Expose the port the app will run on
|
|
EXPOSE 3000
|
|
|
|
# Set the command to run the app in production mode
|
|
CMD ["pnpm", "start"]
|
|
|