Loading...
Loading...
Docker containerization best practices and patterns
npx skill4agent add kinhluan/skills docker-containerization# Build stage
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Production stage
FROM node:20-alpine
WORKDIR /app
COPY /app/dist ./dist
COPY /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/index.js"]# Use specific versions, not latest
FROM python:3.11-slim
# Create non-root user
RUN useradd -m appuser
USER appuser
# Minimize layers and cache
RUN apt-get update && apt-get install -y --no-install-recommends \
package \
&& rm -rf /var/lib/apt/lists/*node_modules
.git
*.log
.env
.DS_Storeversion: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
depends_on:
- db
db:
image: postgres:15-alpine
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: