services: app: build: context: . dockerfile: Dockerfile container_name: ckb-app-prod restart: unless-stopped working_dir: /var/www/html volumes: - ./storage:/var/www/html/storage - ./bootstrap/cache:/var/www/html/bootstrap/cache ports: - "80:80" environment: - APP_ENV=production - APP_DEBUG=false depends_on: - db - redis networks: - ckb-network db: image: mysql:8.0 container_name: ckb-mysql-prod restart: unless-stopped environment: MYSQL_DATABASE: ckb_production MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_USER: ${DB_USERNAME} volumes: - mysql_data:/var/lib/mysql - ./docker/mysql.cnf:/etc/mysql/conf.d/mysql.cnf ports: - "3306:3306" networks: - ckb-network redis: image: redis:7-alpine container_name: ckb-redis-prod restart: unless-stopped command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD} volumes: - redis_data:/data ports: - "6379:6379" networks: - ckb-network nginx-proxy: image: nginx:alpine container_name: ckb-nginx-proxy restart: unless-stopped ports: - "443:443" volumes: - ./docker/nginx-proxy.conf:/etc/nginx/nginx.conf - ./docker/ssl:/etc/nginx/ssl depends_on: - app networks: - ckb-network volumes: mysql_data: driver: local redis_data: driver: local networks: ckb-network: driver: bridge