67 lines
1.6 KiB
YAML
67 lines
1.6 KiB
YAML
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
|