Docker-compose
Docker-compose example template
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./site:/usr/share/nginx/html
- image — which container image to run
- ports — expose ports
- volumes — mount folders/files
- environment — env variables
- depends_on — startup order
- restart — restart policy
- build — build from Dockerfile
- command — override default CMD
More examples
MkDocs in Docker
services:
mkdocs:
build: .
container_name: mkdocs
ports:
- "8000:8000"
volumes:
- ./matywaky-mkdocs:/mkdocs
Simple project
NGINX + Python (flask) + Postgresql
services:
frontend:
image: nginx:1.30.2-alpine3.23
container_name: frontend
networks:
- mycomposenetwork
ports:
- "8080:80"
volumes:
- ./frontend:/usr/share/nginx/html
backend:
build: ./backend
container_name: backend
networks:
- mycomposenetwork
ports:
- "5000:5000"
database:
image: postgres:19beta1-alpine3.23
container_name: database
networks:
- mycomposenetwork
ports:
- "5432:5432"
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=users
volumes:
- ./database:/var/lib/postgresql
- ./database/init:/docker-entrypoint-initdb.d
networks:
mycomposenetwork:
driver: bridge