version: '3.8' services: cassandra: image: cassandra:4.1 container_name: cassandra ports: - "9042:9042" environment: - CASSANDRA_CLUSTER_NAME=EventStoreCluster - CASSANDRA_DC=dc1 - CASSANDRA_RACK=rack1 - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - MAX_HEAP_SIZE=512M - HEAP_NEWSIZE=128M volumes: - ./docker/cassandra/data:/var/lib/cassandra - ./docker/cassandra/commitlog:/var/lib/cassandra/commitlog - ./docker/cassandra/hints:/var/lib/cassandra/hints - ./docker/cassandra/saved_caches:/var/lib/cassandra/saved_caches healthcheck: test: ["CMD-SHELL", "cqlsh -e 'describe cluster'"] interval: 30s timeout: 10s retries: 5 networks: - app-network php: build: context: ./docker/php dockerfile: Dockerfile container_name: php-fpm volumes: - ./src:/var/www/html/src - ./vendor:/var/www/html/vendor - ./logs:/var/www/html/logs - ./composer.json:/var/www/html/composer.json - ./.env:/var/www/html/.env environment: - APP_ENV=${APP_ENV:-production} - APP_DEBUG=${APP_DEBUG:-false} - CASSANDRA_HOST=cassandra - CASSANDRA_PORT=9042 depends_on: cassandra: condition: service_healthy networks: - app-network nginx: image: nginx:alpine container_name: nginx ports: - "8080:80" volumes: - ./src:/var/www/html/src - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - php networks: - app-network networks: app-network: driver: bridge