Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- version: "3"
- services:
- backend:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: on-failure
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- networks:
- - web
- configurator:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: none
- entrypoint:
- - bash
- - -c
- 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 -gp socketio_port $$SOCKETIO_PORT;
- bench set-config -gp background_workers 10;
- bench set-config -g host_name "http://127.0.0.1"
- bench set-config -g developer_mode 0
- environment:
- DB_HOST: $DB_HOST
- DB_PORT: "3306"
- REDIS_CACHE: $REDIS_CACHE:6379
- REDIS_QUEUE: $REDIS_QUEUE:6379
- SOCKETIO_PORT: "9000"
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- networks:
- - web
- create-site:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: none
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- entrypoint:
- - bash
- - -c
- command:
- - >
- wait-for-it -t 120 db:3306;
- wait-for-it -t 120 redis-cache:6379;
- wait-for-it -t 120 redis-queue:6379;
- export start=`date +%s`;
- until [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty"` ]] && \
- [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty"` ]] && \
- [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty"` ]];
- do
- echo "Waiting for sites/common_site_config.json to be created";
- sleep 5;
- if (( `date +%s`-start > 120 )); then
- echo "could not find sites/common_site_config.json with required keys";
- exit 1
- fi
- done;
- echo "sites/common_site_config.json found";
- bench new-site --no-mariadb-socket --admin-password=$ADMIN_PASSWORD --db-root-password=$DB_PASSWORD --install-app erpnext --set-default frontend;
- networks:
- - web
- db:
- image: mariadb:10.6
- healthcheck:
- test: mysqladmin ping -h erpnext-db --password=$DB_PASSWORD
- interval: 1s
- retries: 15
- deploy:
- restart_policy:
- condition: on-failure
- command:
- - --character-set-server=utf8mb4
- - --collation-server=utf8mb4_unicode_ci
- - --skip-character-set-client-handshake
- - --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6
- hostname: erpnext-db
- environment:
- MARIADB_HOST: $DB_HOST
- MARIADB_ROOT_PASSWORD: $DB_PASSWORD
- volumes:
- - db-data:/var/lib/mysql
- networks:
- - web
- frontend:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: on-failure
- command:
- - nginx-entrypoint.sh
- environment:
- BACKEND: backend:8000
- FRAPPE_SITE_NAME_HEADER: frontend
- SOCKETIO: websocket:9000
- UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1
- UPSTREAM_REAL_IP_HEADER: X-Forwarded-For
- UPSTREAM_REAL_IP_RECURSIVE: "off"
- PROXY_READ_TIMEOUT: 600
- CLIENT_MAX_BODY_SIZE: 50m
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- labels:
- - "traefik.enable=true"
- - "traefik.http.routers.erp.entrypoints=websecure"
- - "traefik.http.routers.erp.rule=Host(`erp.domain`)"
- - "traefik.http.routers.erp.tls=true"
- - "traefik.http.routers.erp.tls.certresolver=lets-encrypt"
- - "traefik.http.routers.erp.service=erp"
- - "traefik.http.services.erp.loadbalancer.server.port=8080"
- - "traefik.docker.network=web"
- networks:
- - web
- queue-long:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: on-failure
- command:
- - bench
- - worker
- - --queue
- - long
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- networks:
- - web
- queue-short:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: on-failure
- command:
- - bench
- - worker
- - --queue
- - short
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- networks:
- - web
- queue-default:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: on-failure
- command:
- - bench
- - worker
- - --queue
- - default
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- networks:
- - web
- redis-queue:
- image: redis:6.2-alpine
- container_name: "erpnext-redis-queue"
- deploy:
- restart_policy:
- condition: on-failure
- volumes:
- - redis-queue-data:/data
- networks:
- - web
- redis-cache:
- image: redis:6.2-alpine
- container_name: "erpnext-redis-cache"
- deploy:
- restart_policy:
- condition: on-failure
- volumes:
- - redis-cache-data:/data
- networks:
- - web
- scheduler:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: on-failure
- command:
- - bench
- - schedule
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- networks:
- - web
- websocket:
- image: frappe/erpnext:v15
- platform: linux/amd64
- deploy:
- restart_policy:
- condition: on-failure
- command:
- - node
- - /home/frappe/frappe-bench/apps/frappe/socketio.js
- volumes:
- - sites:/home/frappe/frappe-bench/sites
- - logs:/home/frappe/frappe-bench/logs
- networks:
- - web
- volumes:
- db-data:
- redis-queue-data:
- redis-cache-data:
- sites:
- logs:
- networks:
- web:
- external: true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement