169 lines
5 KiB
YAML
169 lines
5 KiB
YAML
services:
|
|
# ===================
|
|
# MariaDB Database
|
|
# ===================
|
|
mariadb:
|
|
image: mariadb:10.11
|
|
container_name: didi-mariadb
|
|
restart: unless-stopped
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:?seteaza MYSQL_ROOT_PASSWORD in .env}
|
|
MYSQL_CHARACTER_SET_SERVER: utf8mb4
|
|
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
|
|
volumes:
|
|
- mariadb-data:/var/lib/mysql
|
|
- ./mariadb-init:/docker-entrypoint-initdb.d
|
|
ports:
|
|
- "127.0.0.1:3307:3306"
|
|
command:
|
|
- --character-set-server=utf8mb4
|
|
- --collation-server=utf8mb4_unicode_ci
|
|
- --skip-character-set-client-handshake
|
|
- --skip-innodb-read-only-compressed
|
|
- --innodb-buffer-pool-size=512M
|
|
- --innodb-log-file-size=64M
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- didi-network
|
|
|
|
# ===================
|
|
# Redis Cache
|
|
# ===================
|
|
redis-cache:
|
|
image: redis:7-alpine
|
|
container_name: didi-redis-cache
|
|
restart: unless-stopped
|
|
volumes:
|
|
- redis-cache-data:/data
|
|
networks:
|
|
- didi-network
|
|
|
|
# ===================
|
|
# Redis Queue
|
|
# ===================
|
|
redis-queue:
|
|
image: redis:7-alpine
|
|
container_name: didi-redis-queue
|
|
restart: unless-stopped
|
|
volumes:
|
|
- redis-queue-data:/data
|
|
networks:
|
|
- didi-network
|
|
|
|
# ===================
|
|
# ERPNext Backend
|
|
# ===================
|
|
erpnext:
|
|
image: frappe/erpnext:${ERPNEXT_VERSION:-v15}
|
|
container_name: didi-erpnext
|
|
restart: unless-stopped
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
redis-cache:
|
|
condition: service_started
|
|
redis-queue:
|
|
condition: service_started
|
|
entrypoint: ["/bin/bash", "/home/frappe/entrypoint.sh"]
|
|
environment:
|
|
DB_HOST: mariadb
|
|
DB_PORT: "3306"
|
|
REDIS_CACHE: redis://redis-cache:6379
|
|
REDIS_QUEUE: redis://redis-queue:6379
|
|
SOCKETIO_PORT: "9000"
|
|
volumes:
|
|
- erpnext-sites:/home/frappe/frappe-bench/sites
|
|
- erpnext-logs:/home/frappe/frappe-bench/logs
|
|
- ./didi_custom:/home/frappe/frappe-bench/apps/didi_custom
|
|
- ./nginx.conf:/etc/nginx/conf.d/erpnext.conf:ro
|
|
- ./bin/entrypoint.sh:/home/frappe/entrypoint.sh:ro
|
|
- ./bin/start-bench-service.sh:/home/frappe/start-bench-service.sh:ro
|
|
ports:
|
|
- "127.0.0.1:${ERPNEXT_PORT:-8082}:8080"
|
|
networks:
|
|
- didi-network
|
|
|
|
# ===================
|
|
# Frappe Queue Workers
|
|
# ===================
|
|
queue-short:
|
|
image: frappe/erpnext:${ERPNEXT_VERSION:-v15}
|
|
container_name: didi-queue-short
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- erpnext
|
|
entrypoint: ["/bin/bash", "/home/frappe/start-bench-service.sh"]
|
|
command: ["bench", "worker", "--queue", "short"]
|
|
volumes:
|
|
- erpnext-sites:/home/frappe/frappe-bench/sites
|
|
- erpnext-logs:/home/frappe/frappe-bench/logs
|
|
- ./didi_custom:/home/frappe/frappe-bench/apps/didi_custom
|
|
- ./bin/start-bench-service.sh:/home/frappe/start-bench-service.sh:ro
|
|
networks:
|
|
- didi-network
|
|
|
|
queue-long:
|
|
image: frappe/erpnext:${ERPNEXT_VERSION:-v15}
|
|
container_name: didi-queue-long
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- erpnext
|
|
entrypoint: ["/bin/bash", "/home/frappe/start-bench-service.sh"]
|
|
command: ["bench", "worker", "--queue", "long"]
|
|
volumes:
|
|
- erpnext-sites:/home/frappe/frappe-bench/sites
|
|
- erpnext-logs:/home/frappe/frappe-bench/logs
|
|
- ./didi_custom:/home/frappe/frappe-bench/apps/didi_custom
|
|
- ./bin/start-bench-service.sh:/home/frappe/start-bench-service.sh:ro
|
|
networks:
|
|
- didi-network
|
|
|
|
queue-default:
|
|
image: frappe/erpnext:${ERPNEXT_VERSION:-v15}
|
|
container_name: didi-queue-default
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- erpnext
|
|
entrypoint: ["/bin/bash", "/home/frappe/start-bench-service.sh"]
|
|
command: ["bench", "worker", "--queue", "default"]
|
|
volumes:
|
|
- erpnext-sites:/home/frappe/frappe-bench/sites
|
|
- erpnext-logs:/home/frappe/frappe-bench/logs
|
|
- ./didi_custom:/home/frappe/frappe-bench/apps/didi_custom
|
|
- ./bin/start-bench-service.sh:/home/frappe/start-bench-service.sh:ro
|
|
networks:
|
|
- didi-network
|
|
|
|
# ===================
|
|
# Frappe Scheduler
|
|
# ===================
|
|
scheduler:
|
|
image: frappe/erpnext:${ERPNEXT_VERSION:-v15}
|
|
container_name: didi-scheduler
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- erpnext
|
|
entrypoint: ["/bin/bash", "/home/frappe/start-bench-service.sh"]
|
|
command: ["bench", "schedule"]
|
|
volumes:
|
|
- erpnext-sites:/home/frappe/frappe-bench/sites
|
|
- erpnext-logs:/home/frappe/frappe-bench/logs
|
|
- ./didi_custom:/home/frappe/frappe-bench/apps/didi_custom
|
|
- ./bin/start-bench-service.sh:/home/frappe/start-bench-service.sh:ro
|
|
networks:
|
|
- didi-network
|
|
|
|
volumes:
|
|
mariadb-data:
|
|
redis-cache-data:
|
|
redis-queue-data:
|
|
erpnext-sites:
|
|
erpnext-logs:
|
|
|
|
networks:
|
|
didi-network:
|
|
external: true
|