# This file is based on frappe_docker repository specific to Frappe Framework, licensed under the MIT License. # Copyright (c) 2017 Frappe Technologies Pvt. Ltd. See LICENSE at https://github.com/frappe/frappe_docker services: backend: image: yarsalabs/nepal-compliance:${VERSION_TAG} networks: - frappe_network deploy: restart_policy: condition: on-failure volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs environment: DB_HOST: ${DB_HOST} DB_PORT: ${DB_PORT} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} configurator: image: yarsalabs/nepal-compliance:${VERSION_TAG} networks: - frappe_network 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 -g redis_socketio "redis://$$REDIS_QUEUE"; bench set-config -gp socketio_port $$SOCKETIO_PORT; environment: DB_HOST: ${DB_HOST} DB_PORT: ${DB_PORT} REDIS_CACHE: ${REDIS_CACHE} REDIS_QUEUE: ${REDIS_QUEUE} SOCKETIO_PORT: ${SOCKETIO_PORT} volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs create-site: image: yarsalabs/nepal-compliance:${VERSION_TAG} networks: - frappe_network 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 --mariadb-user-host-login-scope='%' --admin-password=${ADMIN_PASSWORD} --db-root-username=root --db-root-password=${DB_ROOT_PASSWORD} --install-app erpnext --install-app hrms --install-app payments --install-app nepal_compliance --set-default frontend; echo "Building nepal_compliance app..."; bench build --app nepal_compliance; db: image: mariadb:10.6 networks: - frappe_network healthcheck: test: mysqladmin ping -h localhost --password=admin interval: 1s retries: 20 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 environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} volumes: - db-data:/var/lib/mysql frontend: image: yarsalabs/nepal-compliance:${VERSION_TAG} networks: - frappe_network depends_on: - websocket deploy: restart_policy: condition: on-failure command: - nginx-entrypoint.sh environment: BACKEND: ${BACKEND} FRAPPE_SITE_NAME_HEADER: ${FRAPPE_SITE_NAME_HEADER} SOCKETIO: ${SOCKETIO} UPSTREAM_REAL_IP_ADDRESS: ${UPSTREAM_REAL_IP_ADDRESS} UPSTREAM_REAL_IP_HEADER: ${UPSTREAM_REAL_IP_HEADER} UPSTREAM_REAL_IP_RECURSIVE: ${UPSTREAM_REAL_IP_RECURSIVE} PROXY_READ_TIMEOUT: 120 CLIENT_MAX_BODY_SIZE: 50m volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs ports: - "8080:8080" queue-long: image: yarsalabs/nepal-compliance:${VERSION_TAG} networks: - frappe_network deploy: restart_policy: condition: on-failure command: - bench - worker - --queue - long,default,short volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs queue-short: image: yarsalabs/nepal-compliance:${VERSION_TAG} networks: - frappe_network deploy: restart_policy: condition: on-failure command: - bench - worker - --queue - short,default volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs redis-queue: image: redis:6.2-alpine networks: - frappe_network deploy: restart_policy: condition: on-failure volumes: - redis-queue-data:/data redis-cache: image: redis:6.2-alpine networks: - frappe_network deploy: restart_policy: condition: on-failure volumes: - redis-cache-data:/data scheduler: image: yarsalabs/nepal-compliance:${VERSION_TAG} networks: - frappe_network deploy: restart_policy: condition: on-failure command: - bench - schedule volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs websocket: image: yarsalabs/nepal-compliance:${VERSION_TAG} networks: - frappe_network 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 volumes: db-data: redis-queue-data: redis-cache-data: sites: logs: networks: frappe_network: driver: bridge