Files
quality_app-v2/docker-compose.yml
2026-01-25 22:25:18 +02:00

94 lines
2.4 KiB
YAML

version: '3.8'
services:
# MariaDB Database Service
mariadb:
image: mariadb:11.0
container_name: quality_app_mariadb
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootpassword}
MYSQL_DATABASE: ${DB_NAME:-quality_db}
MYSQL_USER: ${DB_USER:-quality_user}
MYSQL_PASSWORD: ${DB_PASSWORD:-qualitypass}
TZ: UTC
ports:
- "${DB_PORT:-3306}:3306"
volumes:
- ./data/db:/var/lib/mysql
- ./data/db/backup:/var/lib/mysql/backup
networks:
- quality_network
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
command: [
"--character-set-server=utf8mb4",
"--collation-server=utf8mb4_unicode_ci",
"--max_connections=1000",
"--max_allowed_packet=256M"
]
# Flask Application Service
app:
build:
context: .
dockerfile: Dockerfile
container_name: quality_app_v2
restart: unless-stopped
environment:
FLASK_ENV: ${FLASK_ENV:-production}
FLASK_DEBUG: ${FLASK_DEBUG:-False}
SECRET_KEY: ${SECRET_KEY:-change-this-in-production}
DB_HOST: mariadb
DB_PORT: ${DB_PORT:-3306}
DB_USER: ${DB_USER:-quality_user}
DB_PASSWORD: ${DB_PASSWORD:-qualitypass}
DB_NAME: ${DB_NAME:-quality_db}
APP_PORT: ${APP_PORT:-8080}
APP_HOST: 0.0.0.0
LOG_LEVEL: ${LOG_LEVEL:-INFO}
ports:
- "${APP_PORT:-8080}:8080"
volumes:
- ./app:/app/app
- ./data/logs:/app/data/logs
- ./data/uploads:/app/data/uploads
- ./data/backups:/app/data/backups
networks:
- quality_network
depends_on:
mariadb:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/login"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
# Nginx Reverse Proxy (Optional)
# Uncomment the following section to use Nginx as a reverse proxy
# nginx:
# image: nginx:alpine
# container_name: quality_app_nginx
# restart: unless-stopped
# ports:
# - "80:80"
# - "443:443"
# volumes:
# - ./nginx.conf:/etc/nginx/nginx.conf:ro
# - ./ssl:/etc/nginx/ssl:ro
# networks:
# - quality_network
# depends_on:
# - app
volumes: {}
networks:
quality_network:
driver: bridge