# Docker Compose für MYP (Manage Your Printers) System # Mercedes-Benz TBA Marienfelde - Multi-Port-Deployment version: '3.8' services: # ===== MYP HTTP Service (Port 80) ===== myp-http: build: context: . dockerfile: Dockerfile.simple container_name: myp-system-http hostname: myp-http restart: unless-stopped environment: - FLASK_ENV=production - MYP_ENV=production - MYP_PORT=80 - MYP_HOST=0.0.0.0 - MYP_SSL=false ports: - "80:80" volumes: - myp-data:/app/instance - myp-database:/app/database - myp-logs:/app/logs - myp-uploads:/app/uploads - myp-ssl:/app/ssl networks: - myp-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/"] interval: 30s timeout: 10s retries: 3 start_period: 60s # ===== MYP HTTPS Service (Port 443) ===== myp-https: build: context: . dockerfile: Dockerfile.simple container_name: myp-system-https hostname: myp-https restart: unless-stopped environment: - FLASK_ENV=production - MYP_ENV=production - MYP_PORT=443 - MYP_HOST=0.0.0.0 - MYP_SSL=true ports: - "443:443" volumes: - myp-data:/app/instance - myp-database:/app/database - myp-logs:/app/logs - myp-uploads:/app/uploads - myp-ssl:/app/ssl networks: - myp-network healthcheck: test: ["CMD", "curl", "-k", "-f", "https://localhost:5000/"] interval: 30s timeout: 10s retries: 3 start_period: 60s # ===== MYP Development Service (Port 5000) ===== myp-dev: build: context: . dockerfile: Dockerfile.simple container_name: myp-system-dev hostname: myp-dev restart: unless-stopped environment: - FLASK_ENV=development - MYP_ENV=development - MYP_PORT=5000 - MYP_HOST=0.0.0.0 - MYP_SSL=false - MYP_DEBUG=true ports: - "5000:5000" volumes: - myp-data:/app/instance - myp-database:/app/database - myp-logs:/app/logs - myp-uploads:/app/uploads - myp-ssl:/app/ssl # Development: Code-Mounting für Live-Reload - ./backend:/app:ro networks: - myp-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5000/"] interval: 30s timeout: 10s retries: 3 start_period: 60s # ===== VOLUMES ===== volumes: myp-data: driver: local name: myp-system-data myp-database: driver: local name: myp-system-database myp-logs: driver: local name: myp-system-logs myp-uploads: driver: local name: myp-system-uploads myp-ssl: driver: local name: myp-system-ssl # ===== NETWORKS ===== networks: myp-network: driver: bridge name: myp-system-network ipam: config: - subnet: 172.20.0.0/16