services: mariadb: image: mariadb:10.11 container_name: videodetect-mariadb restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootpass} MYSQL_DATABASE: ${DB_NAME:-videodetect} MYSQL_USER: ${DB_USER:-videodetect} MYSQL_PASSWORD: ${DB_PASSWORD:-videodetect123} ports: - "3306:3306" volumes: - mariadb_data:/var/lib/mysql - ./db/schema.sql:/docker-entrypoint-initdb.d/01-schema.sql:ro networks: - videodetect-network healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 5 deploy: resources: limits: memory: 2G ui: build: context: ./ui dockerfile: Dockerfile container_name: videodetect-ui restart: unless-stopped ports: - "5000:5000" environment: - DB_HOST=mariadb - DB_PORT=3306 - DB_NAME=videodetect - DB_USER=videodetect - DB_PASSWORD=${DB_PASSWORD:-videodetect123} - FLASK_ENV=production volumes: - ./ui:/app - nas_input:/data/input:ro - ${NAS_OUTPUT_PATH:-/mnt/nas/output}:/data/output networks: - videodetect-network depends_on: mariadb: condition: service_healthy deploy: resources: limits: memory: 512M api: build: context: ./api dockerfile: Dockerfile container_name: videodetect-api restart: unless-stopped ports: - "5001:5000" environment: - DB_HOST=mariadb - DB_PORT=3306 - DB_NAME=videodetect - DB_USER=videodetect - DB_PASSWORD=${DB_PASSWORD:-videodetect123} - DANCER_ENVIRONMENT=production volumes: - ./api:/app networks: - videodetect-network depends_on: mariadb: condition: service_healthy volumes: mariadb_data: driver: local nas_input: driver: local driver_opts: type: nfs o: addr=10.0.0.2,ro,nfsvers=4,hard,intr device: ":/mnt/Bulk/Homes/ryan/Prawns" networks: videodetect-network: driver: bridge