Loading...
Loading...
Dockerize an application with a production-ready Dockerfile, docker-compose setup, and .dockerignore.
npx skill4agent add spencerpauly/awesome-cursor-skills adding-dockerpackage.jsonrequirements.txtgo.modCargo.tomlDockerfileFROM node:20-alpine AS base
FROM base AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --omit=dev
FROM base AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM base AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY /app/node_modules ./node_modules
COPY /app/.next ./.next
COPY /app/public ./public
COPY /app/package.json ./
EXPOSE 3000
CMD ["npm", "start"].dockerignorenode_modules
.next
.git
.env*
*.mddocker-compose.ymlservices:
app:
build: .
ports:
- "3000:3000"
env_file: .env
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: app
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:{
"docker:build": "docker build -t myapp .",
"docker:run": "docker compose up"
}.envenv_file.dockerignoreHEALTHCHECK