3-service Docker app: Nginx frontend, Flask REST API backend, PostgreSQL database. Includes lifecycle scripts (prepare, start, stop, remove), docker-compose.yaml, and documentation.
48 lines
896 B
YAML
48 lines
896 B
YAML
services:
|
|
db:
|
|
image: postgres:15
|
|
container_name: taskapp-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: taskapp
|
|
POSTGRES_USER: taskapp
|
|
POSTGRES_PASSWORD: taskapp123
|
|
volumes:
|
|
- taskapp-pgdata:/var/lib/postgresql/data
|
|
networks:
|
|
- taskapp-network
|
|
|
|
flask:
|
|
build: ./backend
|
|
image: taskapp-backend
|
|
container_name: taskapp-flask
|
|
restart: unless-stopped
|
|
environment:
|
|
DB_HOST: db
|
|
DB_NAME: taskapp
|
|
DB_USER: taskapp
|
|
DB_PASSWORD: taskapp123
|
|
depends_on:
|
|
- db
|
|
networks:
|
|
- taskapp-network
|
|
|
|
nginx:
|
|
build: ./frontend
|
|
image: taskapp-frontend
|
|
container_name: taskapp-nginx
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
depends_on:
|
|
- flask
|
|
networks:
|
|
- taskapp-network
|
|
|
|
volumes:
|
|
taskapp-pgdata:
|
|
|
|
networks:
|
|
taskapp-network:
|
|
driver: bridge
|