mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-23 00:05:09 +00:00
175 lines
4.7 KiB
YAML
175 lines
4.7 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
backend:
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- configurator
|
|
image: onesrv/frappe_crm:${CRM_VERSION}
|
|
networks:
|
|
default: null
|
|
volumes:
|
|
- sites:/home/frappe/frappe-bench/sites
|
|
configurator:
|
|
command:
|
|
- |
|
|
ls -1 apps > sites/apps.txt; bench set-config -g db_host $$DB_HOST; bench set-config -gp db_port $$DB_PORT; bench set-config -g redis_cache "redis://$$REDIS_CACHE"; bench set-config -g redis_queue "redis://$$REDIS_QUEUE"; bench set-config -g redis_socketio "redis://$$REDIS_QUEUE"; bench set-config -gp socketio_port $$SOCKETIO_PORT;
|
|
depends_on:
|
|
- redis-cache
|
|
# - redis-queue
|
|
entrypoint:
|
|
- bash
|
|
- -c
|
|
environment:
|
|
DB_HOST: "database"
|
|
DB_PORT: "3306"
|
|
REDIS_CACHE: redis-cache:6379
|
|
REDIS_QUEUE: redis-cache:6379
|
|
SOCKETIO_PORT: "9000"
|
|
image: onesrv/frappe_crm:${CRM_VERSION}
|
|
networks:
|
|
default: null
|
|
volumes:
|
|
- sites:/home/frappe/frappe-bench/sites
|
|
database:
|
|
command:
|
|
- --character-set-server=utf8mb4
|
|
- --collation-server=utf8mb4_unicode_ci
|
|
- --skip-character-set-client-handshake
|
|
- --skip-innodb-read-only-compressed
|
|
container_name: mariadb-database
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: 0SDSC9I1ocbfZGj2Bk9jLpk0Y2KC7Upc0Rz43Pg1oc
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- mysqladmin ping -h localhost --password=0SDSC9I1ocbfZGj2Bk9jLpk0Y2KC7Upc0Rz43Pg1oc
|
|
interval: 1s
|
|
retries: 90
|
|
image: mariadb:10.6
|
|
networks:
|
|
default: null
|
|
restart: unless-stopped
|
|
volumes:
|
|
- type: volume
|
|
source: db-data
|
|
target: /var/lib/mysql
|
|
volume: {}
|
|
frontend:
|
|
restart: unless-stopped
|
|
command:
|
|
- nginx-entrypoint.sh
|
|
|
|
labels:
|
|
- traefik.http.routers.frappe-crm-http.rule=Host(`crm.example.com`,`crm.example.com`)
|
|
- traefik.http.routers.frappe-crm-http.entrypoints=http
|
|
- traefik.http.routers.frappe-crm-http.middlewares=https-redirect
|
|
|
|
- traefik.http.routers.frappe-crm.rule=Host(`crm.example.com`,`crm.example.com`)
|
|
- traefik.http.routers.frappe-crm.tls
|
|
#get real ip from cloudflare
|
|
- traefik.http.routers.frappe-crm.middlewares=cfwarp
|
|
- traefik.http.services.frappe-crm-service.loadbalancer.server.port=8080
|
|
- traefik.http.middlewares.frappe-crm.headers.customrequestheaders.Host=frontend
|
|
- traefik.http.routers.frappe-crm.middlewares=frappe-crm
|
|
- traefik.enable=true
|
|
depends_on:
|
|
- backend
|
|
- websocket
|
|
environment:
|
|
BACKEND: "backend:8000"
|
|
CLIENT_MAX_BODY_SIZE: 50m
|
|
FRAPPE_SITE_NAME_HEADER: $$host
|
|
PROXY_READ_TIMEOUT: "120"
|
|
SOCKETIO: "websocket:9000"
|
|
# UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1
|
|
# UPSTREAM_REAL_IP_HEADER: X-Forwarded-For
|
|
# UPSTREAM_REAL_IP_RECURSIVE: "off"
|
|
image: onesrv/frappe_crm:${CRM_VERSION}
|
|
networks:
|
|
default: null
|
|
traefik-public: null
|
|
volumes:
|
|
- sites:/home/frappe/frappe-bench/sites
|
|
queue-long:
|
|
restart: unless-stopped
|
|
command:
|
|
- bench
|
|
- worker
|
|
- --queue
|
|
- long,default,short
|
|
depends_on:
|
|
- configurator
|
|
image: onesrv/frappe_crm:${CRM_VERSION}
|
|
networks:
|
|
default: null
|
|
volumes:
|
|
- sites:/home/frappe/frappe-bench/sites
|
|
queue-short:
|
|
restart: unless-stopped
|
|
command:
|
|
- bench
|
|
- worker
|
|
- --queue
|
|
- short,default
|
|
depends_on:
|
|
- configurator
|
|
image: onesrv/frappe_crm:${CRM_VERSION}
|
|
networks:
|
|
default: null
|
|
volumes:
|
|
- sites:/home/frappe/frappe-bench/sites
|
|
redis-cache:
|
|
restart: unless-stopped
|
|
image: redis:6.2-alpine
|
|
networks:
|
|
default: null
|
|
# redis-queue:
|
|
# restart: unless-stopped
|
|
# image: redis:6.2-alpine
|
|
# networks:
|
|
# default: null
|
|
scheduler:
|
|
restart: unless-stopped
|
|
command:
|
|
- bench
|
|
- schedule
|
|
depends_on:
|
|
- configurator
|
|
image: onesrv/frappe_crm:${CRM_VERSION}
|
|
networks:
|
|
default: null
|
|
volumes:
|
|
- sites:/home/frappe/frappe-bench/sites
|
|
websocket:
|
|
restart: unless-stopped
|
|
command:
|
|
- node
|
|
- /home/frappe/frappe-bench/apps/frappe/socketio.js
|
|
depends_on:
|
|
- configurator
|
|
image: onesrv/frappe_crm:${CRM_VERSION}
|
|
networks:
|
|
default: null
|
|
volumes:
|
|
- sites:/home/frappe/frappe-bench/sites
|
|
networks:
|
|
default:
|
|
name: frappe-network
|
|
traefik-public:
|
|
external: true
|
|
|
|
volumes:
|
|
db-data:
|
|
driver: local
|
|
driver_opts:
|
|
type: 'none'
|
|
o: 'bind'
|
|
device: '/data/frappecrm/db'
|
|
sites:
|
|
driver: local
|
|
driver_opts:
|
|
type: 'none'
|
|
o: 'bind'
|
|
device: '/data/frappecrm/sites'
|
|
|