Dockerfile Starter
Multi-stage Dockerfiles for Node, Python, PHP, Go, Ruby, Rust, Java, and static sites — plus matching .dockerignore.
Dockerfile
FROM node:22-alpine AS deps WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev FROM node:22-alpine AS runtime WORKDIR /app ENV NODE_ENV=production COPY --from=deps /app/node_modules ./node_modules COPY . . USER node EXPOSE 3000 CMD ["node", "server.js"]
.dockerignore
.git .gitignore .dockerignore README.md LICENSE .env .env.* node_modules __pycache__ .venv target dist build *.log
Multi-stage by default
Every template separates build and runtime stages — smaller final images, no toolchains shipped to production. Templates land in the non-root user where the runtime base supports it.
Edit before shipping
These are starters, not finished products. Pin specific image digests for reproducible builds, configure your real port and entrypoint, and add a healthcheck.
You might also like
- .gitignore BuilderPick languages, frameworks, build tools, editors and OS — get a deduped .gitignore.
- .gitignore GeneratorBuild a .gitignore by picking from common language, framework, and OS templates.
- GitHub Actions StarterWorkflow YAML for Node CI, Python pytest, Go, Rust, Docker build/push, or GitHub Pages deploy.
- Hashing Snippet GeneratorMD5 / SHA-1 / SHA-256 / SHA-512 / HMAC-SHA256 snippets in Node, browser, Python, PHP, Ruby, Go, Rust, and shell.