Containerizing a Next.js app.
1FROM node:20-alpine AS base
2
3FROM base AS deps
4WORKDIR /app
5COPY package*.json ./
6RUN npm ci
7
8FROM base AS builder
9WORKDIR /app
10COPY /app/node_modules ./node_modules
11COPY . .
12RUN npm run build
13
14FROM base AS runner
15WORKDIR /app
16ENV NODE_ENV=production
17COPY /app/.next/standalone ./
18COPY /app/.next/static ./.next/static
19COPY /app/public ./public
20
21EXPOSE 3000
22CMD ["node", "server.js"]1version: '3.8'
2services:
3 app:
4 build: .
5 ports:
6 - "3000:3000"
7 environment:
8 - DATABASE_URL=postgresql://...See you soon! 🚀