services: backend_db: image: postgres:17-alpine3.21 container_name: ${PROJECT_NAME}-pgsql tty: true ports: - "8050:5432" environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - ./data:/var/lib/postgresql/data profiles: - server networks: - notification notification_db: image: postgres:17-alpine3.21 container_name: notification_db tty: true ports: - "8070:5432" environment: POSTGRES_DB: ${NOTIFICATION_SERVER_DB} POSTGRES_USER: ${NOTIFICATION_SERVER_USER} POSTGRES_PASSWORD: ${NOTIFICATION_SERVER_PASSWORD} volumes: - ./notification:/var/lib/postgresql/data profiles: - server networks: - notification redis: image: redis:7-alpine3.21 container_name: redis restart: unless-stopped profiles: - server networks: - notification laravel: build: context: ${PROJECT_PATH} dockerfile: Dockerfile container_name: ${PROJECT_NAME} tty: true ports: - "8003:8000" - "9000:9000" volumes: - ./laravel:/var/www/crm profiles: - server networks: - notification depends_on: - backend_db notification_server: build: context: ${NOTIFICATION_SERVER_PATH} dockerfile: Dockerfile container_name: notification_server environment: - NODE_ENV=production - DB_HOST=notification_db - DB_PORT=5432 - DB_USERNAME=${NOTIFICATION_SERVER_USER} - DB_PASSWORD=${NOTIFICATION_SERVER_PASSWORD} - DB_DATABASE=${NOTIFICATION_SERVER_DB} - DB_SSL=${NOTIFICATION_SERVER_DB_SSL} - DB_SYNC=${NOTIFICATION_SERVER_DB_SYNC} - PORT=${NOTIFICATION_SERVER_PORT} - REDIS_HOST=${REDIS_HOST} - REDIS_PORT=${REDIS_PORT} ports: - "3023:${NOTIFICATION_SERVER_PORT}" volumes: - ${NOTIFICATION_SERVER_PATH}:/var/www/crm-notification-server profiles: - server networks: - notification depends_on: - backend_db - laravel - notification_db - redis networks: notification: driver: bridge