services: app: build: context: . target: app volumes: - app_code:/var/www/html environment: APP_NAME: "${APP_NAME:-MySkin}" APP_ENV: production APP_DEBUG: "false" APP_KEY: "${APP_KEY}" APP_URL: "${APP_URL}" LOG_CHANNEL: stderr LOG_DEPRECATIONS_CHANNEL: "null" LOG_LEVEL: "${LOG_LEVEL:-warning}" DB_CONNECTION: "${DB_CONNECTION:-mysql}" DB_HOST: "${DB_HOST:-db}" DB_PORT: "${DB_PORT:-3306}" DB_DATABASE: "${DB_DATABASE}" DB_USERNAME: "${DB_USERNAME}" DB_PASSWORD: "${DB_PASSWORD}" AI_PREDICT_URL: "${AI_PREDICT_URL}" AI_MELANOMA_THRESHOLD: "${AI_MELANOMA_THRESHOLD:-0.5}" AI_MELANOMA_LABEL: "${AI_MELANOMA_LABEL:-Melanoma}" AI_NEGATIVE_LABEL: "${AI_NEGATIVE_LABEL:-Non-Melanoma}" SESSION_DRIVER: database SESSION_LIFETIME: "120" SESSION_SECURE_COOKIE: "true" BROADCAST_CONNECTION: log FILESYSTEM_DISK: local QUEUE_CONNECTION: database CACHE_STORE: database MAIL_MAILER: log APP_MAINTENANCE_DRIVER: file BCRYPT_ROUNDS: "12" depends_on: db: condition: service_healthy networks: - internal restart: unless-stopped nginx: build: context: . target: nginx volumes: - app_code:/var/www/html:ro networks: - internal restart: unless-stopped db: build: context: . dockerfile: Dockerfile.db environment: MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD:?DB_ROOT_PASSWORD is required}" MYSQL_DATABASE: "${DB_DATABASE:-humicpro_myskin_v2}" MYSQL_USER: "${DB_USERNAME:-humicpro_myskin_v2}" MYSQL_PASSWORD: "${DB_PASSWORD:?DB_PASSWORD is required}" volumes: - db_data:/var/lib/mysql networks: - internal restart: unless-stopped healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 5 volumes: app_code: db_data: networks: internal: