version: '3.8' services: app: build: context: . dockerfile: Dockerfile restart: unless-stopped ports: - "${APP_PORT:-8000}:80" environment: - APP_ENV=${APP_ENV:-production} - APP_DEBUG=${APP_DEBUG:-false} - APP_URL=${APP_URL} - DB_CONNECTION=${DB_CONNECTION:-mysql} - DB_HOST=${DB_HOST:-mariadb} - DB_PORT=${DB_PORT:-3306} - DB_DATABASE=${DB_DATABASE:-zemail} - DB_USERNAME=${DB_USERNAME:-zemail_user} - DB_PASSWORD=${DB_PASSWORD:-secret} - CACHE_STORE=${CACHE_STORE:-redis} - QUEUE_CONNECTION=${QUEUE_CONNECTION:-redis} - SESSION_DRIVER=${SESSION_DRIVER:-redis} - REDIS_HOST=${REDIS_HOST:-redis} - REDIS_PASSWORD=${REDIS_PASSWORD:-null} - REDIS_PORT=${REDIS_PORT:-6379} healthcheck: test: [ "CMD", "curl", "-f", "http://localhost/health" ] interval: 30s timeout: 10s retries: 3 start_period: 30s volumes: - app-storage:/var/www/storage - app-public-tmp:/var/www/public/tmp depends_on: - redis - mariadb redis: image: redis:alpine restart: unless-stopped volumes: - redis-data:/data mariadb: image: mariadb:10.11 restart: unless-stopped environment: - MYSQL_DATABASE=${DB_DATABASE:-zemail} - MYSQL_USER=${DB_USERNAME:-zemail_user} - MYSQL_PASSWORD=${DB_PASSWORD:-secret} - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD:-rootsecret} volumes: - mariadb-data:/var/lib/mysql volumes: app-storage: app-public-tmp: redis-data: mariadb-data: