services: mariadb: image: mariadb:latest container_name: app-mariadb environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} ports: - "3306:3306" volumes: - dbdata:/var/lib/mysql restart: unless-stopped php: build: context: ./docker/php dockerfile: Dockerfile args: USER_ID: ${USER_ID:-1000} GROUP_ID: ${GROUP_ID:-1000} container_name: app-php extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./app-code:/var/www/app${DEV:+:delegated} - ./docker/php/.env:/tmp/app.env:ro - typesense-data:/typesense-data:ro environment: - GIT_TOKEN=${GIT_TOKEN} - BACKEND_GIT_REPO=${BACKEND_GIT_REPO} - BACKEND_GIT_BRANCH=${BACKEND_GIT_BRANCH} - DEV=${DEV} depends_on: - mariadb - typesense restart: unless-stopped healthcheck: test: [ "CMD-SHELL", "test -d /var/www/app/vendor && pidof php-fpm || exit 1" ] interval: 5s timeout: 3s retries: 20 start_period: 120s frontend: build: context: ./docker/frontend dockerfile: Dockerfile container_name: app-frontend environment: - GIT_TOKEN=${GIT_TOKEN} - FRONTEND_GIT_REPO=${FRONTEND_GIT_REPO} - FRONTEND_GIT_BRANCH=${FRONTEND_GIT_BRANCH} volumes: - ./app-code:/var/www/app${DEV:+:delegated} - ./docker/frontend/.env:/tmp/app.env:ro depends_on: php: condition: service_healthy restart: "no" nginx: image: nginx:alpine container_name: app-nginx volumes: - ./app-code:/var/www/app${DEV:+:delegated} - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf ports: - "80:80" depends_on: php: condition: service_healthy frontend: condition: service_completed_successfully restart: unless-stopped typesense: build: context: ./docker/typesense dockerfile: Dockerfile restart: unless-stopped volumes: - typesense-data:/data backup: build: context: ./docker/backup dockerfile: Dockerfile container_name: app-backup environment: - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} volumes: - ./backups:/backups restart: unless-stopped reverb: build: context: ./docker/reverb dockerfile: Dockerfile container_name: app-reverb entrypoint: [] command: php artisan reverb:start --host=0.0.0.0 --port=8080 volumes: - ./app-code:/var/www/app:delegated ports: - "8080:8080" depends_on: - php - mariadb restart: unless-stopped volumes: dbdata: typesense-data: networks: default: ipam: config: - subnet: 192.168.200.0/24