Update: 2026-08-02 17:52:28

This commit is contained in:
Hamza-Ayed
2026-08-02 17:52:28 +03:00
parent b78a6797d5
commit 4620e84d34
96 changed files with 6250 additions and 476 deletions
+71
View File
@@ -23,6 +23,8 @@ services:
- ../dashboard:/var/www/dashboard:ro
depends_on:
- php
- php_transit
- php_food
mem_limit: 256m
restart: unless-stopped
@@ -48,6 +50,75 @@ services:
mem_limit: 2g
restart: unless-stopped
# php-fpm معزولة لخدمة Mawasalati (transit) — حاوية مستقلة عن الباك إند الرئيسي.
# المشترك الوحيد مع النظام الأساسي: JWT ومصادقة السائق/الراكب عبر backend/core
# (نُركّبها read-only)، ونفس mysql/redis. لا صلة بـ backend الرئيسي ولا payment v2،
# ولا تتأثر Mawasalati إذا امتلأ pool الباك إند الرئيسي أو انهار.
php_transit:
build:
context: ..
dockerfile: docker/php/Dockerfile.fpm.transit
args:
PHP_VERSION: "${PHP_VERSION:-8.2}"
volumes:
- ../backend/core:/var/www/backend/core:ro
- ../backend/functions.php:/var/www/backend/functions.php:ro
- ../backend/transit:/var/www/backend/transit
- ./php/opcache.ini:/usr/local/etc/php/conf.d/zz-opcache.ini:ro
- ./php/www-pool.transit.conf:/usr/local/etc/php-fpm.d/zz-pool.conf:ro
- ./keys:/keys:ro
env_file: .env
depends_on:
- mysql
- redis
mem_limit: 512m
restart: unless-stopped
# php-fpm معزولة لوحدة طلبات الطعام — نفس منطق عزل php_transit.
# المشترك الوحيد: JWT (backend/core) ونفس mysql/redis. قاعدة siro_food منفصلة.
php_food:
build:
context: ..
dockerfile: docker/php/Dockerfile.fpm.transit
args:
PHP_VERSION: "${PHP_VERSION:-8.2}"
volumes:
- ../backend/core:/var/www/backend/core:ro
- ../backend/functions.php:/var/www/backend/functions.php:ro
- ../backend/food:/var/www/backend/food
- ./php/opcache.ini:/usr/local/etc/php/conf.d/zz-opcache.ini:ro
- ./php/food-pool.conf:/usr/local/etc/php-fpm.d/zz-pool.conf:ro
- ./keys:/keys:ro
env_file: .env
depends_on:
- mysql
- redis
mem_limit: 768m
restart: unless-stopped
# سوكيت الطعام — WS بورت 4040 + HTTP داخلي 4041
socket_food:
build:
context: ./php
dockerfile: Dockerfile.socket
args:
PHP_VERSION: "${PHP_VERSION:-8.2}"
command: ["php", "food_socket.php", "start"]
working_dir: /app
volumes:
- ../food_server:/app
- ./keys:/keys:ro
env_file: .env
ports:
# نفس منطق سوكيت السائقين: لا نفتح 4040 للعالم مباشرة — nginx على
# المضيف يستمع 4040 بالشهادة ويمرّر إلى 14040 هنا. 4041 داخلي فقط
# (الباك إند يناديه عبر http://socket_food:4041).
- "127.0.0.1:${FOOD_SOCKET_PORT:-14040}:4040"
depends_on:
- redis
mem_limit: 512m
restart: unless-stopped
# سوكيت السائقين (Workerman + PHPSocketIO) — WS بورت 2020 + HTTP داخلي 2021
# عملية دائمة، لا علاقة لها بـ fpm — حاوية مستقلة إجبارياً.
socket_driver: