Docker
Beginner
1 min read
Docker Compose for Development Workflows
Example
# compose.override.yaml (dev additions, never deployed to prod)
services:
api:
build:
target: dev
command: ["node", "--watch", "src/server.js"]
volumes:
- ./src:/app/src
- ./config:/app/config
ports:
- "9229:9229"
environment:
NODE_ENV: development
LOG_LEVEL: debug
mailhog:
image: mailhog/mailhog
ports:
- "8025:8025"
- "1025:1025"
# .env (never committed)
# POSTGRES_PASSWORD=devpassword
# JWT_SECRET=devsecret
# compose.yaml references env vars:
# environment:
# POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
# Dev workflow
# docker compose up --build
# docker compose exec api sh
# docker compose restart api
# docker compose run --rm api npm test
Related Resources
Docker Reference
Complete tag & property list
Docker How-To Guides
Step-by-step practical guides
Docker Exercises
Practice what you've learned
More in Docker