services: qrforge-app: build: context: . dockerfile: Dockerfile restart: "unless-stopped" environment: TYPE: "${TYPE:-docker}" QRCODE_GENERATOR: "${QRCODE_GENERATOR:-internal-chillerlan.qrcode}" BASE_URL: "${BASE_URL:-http://localhost}" DATABASE_HOST: "qrforge-db" DATABASE_PORT: "3306" DATABASE_NAME: "${DATABASE_NAME:-qrcode}" DATABASE_USER: "${DATABASE_USER:-qrcode}" DATABASE_PASSWORD: "${DATABASE_PASSWORD:?zet DATABASE_PASSWORD in .env}" DATABASE_PREFIX: "${DATABASE_PREFIX:-}" DATABASE_CHARSET: "${DATABASE_CHARSET:-utf8}" ports: - "80:80" depends_on: qrforge-db: condition: service_healthy volumes: - qrforge_qrcode_storage:/var/www/qrcode-storage networks: - qrforge-network qrforge-db: image: "mysql:8.0" restart: "unless-stopped" volumes: - qrforge_db_data:/var/lib/mysql - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro environment: MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD:?zet MYSQL_ROOT_PASSWORD in .env}" MYSQL_DATABASE: "${DATABASE_NAME:-qrcode}" MYSQL_USER: "${DATABASE_USER:-qrcode}" MYSQL_PASSWORD: "${DATABASE_PASSWORD:?zet DATABASE_PASSWORD in .env}" healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"] interval: 5s timeout: 5s retries: 10 networks: - qrforge-network volumes: qrforge_db_data: qrforge_qrcode_storage: networks: qrforge-network: driver: bridge