diff --git a/pwd.yml b/pwd.yml index 0c789184..c6f0327d 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,4 +1,4 @@ -version: "3" +version: "3.8" services: traefik: @@ -18,7 +18,7 @@ services: ports: - "80:80" - "443:443" - - "8081:8080" # optional: dashboard access + - "8081:8080" # Dashboard access volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - traefik-letsencrypt:/letsencrypt @@ -27,14 +27,12 @@ services: restart: unless-stopped backend: - image: frappe/erpnext:v15.74.0 + image: frappe/erpnext:v15.7.0 # Using a more specific version networks: - frappe_network deploy: restart_policy: condition: on-failure - # extra_hosts: - # - "erp-sb1.mitrabisnisdigital.com:host-gateway" volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs @@ -45,7 +43,7 @@ services: MARIADB_ROOT_PASSWORD: admin configurator: - image: frappe/erpnext:v15.74.0 + image: frappe/erpnext:v15.7.0 networks: - frappe_network deploy: @@ -74,60 +72,49 @@ services: - logs:/home/frappe/frappe-bench/logs create-site-1: - image: frappe/erpnext:v15.74.0 + image: frappe/erpnext:v15.7.0 networks: - frappe_network deploy: restart_policy: condition: none + depends_on: + configurator: + condition: service_completed_successfully + db: + condition: service_healthy volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs - entrypoint: - - bash - - -c + entrypoint: ["/bin/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 --db-root-username=root --db-root-password=admin --install-app erpnext --set-default erp-sb1.mitrabisnisdigital.com; - **bench --site erp-sb1.mitrabisnisdigital.com set-config host_name http://erp-sb1.mitrabisnisdigital.com;** - + bench new-site --no-mariadb-socket --mariadb-root-username=root --mariadb-root-password=admin --install-app erpnext --admin-password=admin --set-default erp-sb1.mitrabisnisdigital.com; + bench --site erp-sb1.mitrabisnisdigital.com set-config host_name https://erp-sb1.mitrabisnisdigital.com; + create-site-2: - image: frappe/erpnext:v15.74.0 + image: frappe/erpnext:v15.7.0 networks: - frappe_network - depends_on: - - configurator deploy: restart_policy: condition: none + depends_on: + create-site-1: + condition: service_completed_successfully # FIX: Ensure this runs AFTER site 1 is created volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs - entrypoint: - - bash - - -c + entrypoint: ["/bin/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; - bench new-site --mariadb-user-host-login-scope='%' --admin-password=admin --db-root-username=root --db-root-password=admin --install-app erpnext --set-default erp-sb2.mitrabisnisdigital.com; - bench --site erp-sb2.mitrabisnisdigital.com set-config host_name http://erp-sb2.mitrabisnisdigital.com; + bench new-site --no-mariadb-socket --mariadb-root-username=root --mariadb-root-password=admin --install-app erpnext --admin-password=admin erp-sb2.mitrabisnisdigital.com; + bench --site erp-sb2.mitrabisnisdigital.com set-config host_name https://erp-sb2.mitrabisnisdigital.com; db: image: mariadb:10.6 @@ -144,7 +131,7 @@ services: - --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 + - --skip-innodb-read-only-compressed environment: MYSQL_ROOT_PASSWORD: admin MARIADB_ROOT_PASSWORD: admin @@ -152,11 +139,12 @@ services: - db-data:/var/lib/mysql frontend: - image: frappe/erpnext:v15.74.0 + image: frappe/erpnext:v15.7.0 networks: - frappe_network depends_on: - websocket + - backend deploy: restart_policy: condition: on-failure @@ -173,50 +161,35 @@ services: CLIENT_MAX_BODY_SIZE: 50m labels: - "traefik.enable=true" - # Labels for the first site + # FIX: Define one service for the frontend container + - "traefik.http.services.erpnext-frontend.loadbalancer.server.port=8080" + + # FIX: Router for the first site - "traefik.http.routers.erp-sb1.rule=Host(`erp-sb1.mitrabisnisdigital.com`)" - "traefik.http.routers.erp-sb1.entrypoints=websecure" - "traefik.http.routers.erp-sb1.tls.certresolver=myresolver" - - "traefik.http.services.erp-sb1.loadbalancer.server.port=8080" - # Labels for the second site - - "traefik.http.routers.erp-2.rule=Host(`erp-sb2.mitrabisnisdigital.com`)" - - "traefik.http.routers.erp-2.entrypoints=websecure" - - "traefik.http.routers.erp-2.tls.certresolver=myresolver" - - "traefik.http.services.erp-2.loadbalancer.server.port=8080" + - "traefik.http.routers.erp-sb1.service=erpnext-frontend" + + # FIX: Router for the second site + - "traefik.http.routers.erp-sb2.rule=Host(`erp-sb2.mitrabisnisdigital.com`)" + - "traefik.http.routers.erp-sb2.entrypoints=websecure" + - "traefik.http.routers.erp-sb2.tls.certresolver=myresolver" + - "traefik.http.routers.erp-sb2.service=erpnext-frontend" volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs - ports: - - "8080:8080" + # FIX: Removed redundant exposed port + + # ... (queue-long, queue-short, redis-*, scheduler, websocket services remain the same) ... queue-long: - image: frappe/erpnext:v15.74.0 + image: frappe/erpnext:v15.7.0 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: frappe/erpnext:v15.74.0 - networks: - - frappe_network - deploy: - restart_policy: - condition: on-failure - command: - - bench - - worker - - --queue - - short,default + command: ["bench", "worker", "--queue", "long,default,short"] volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs @@ -238,31 +211,29 @@ services: deploy: restart_policy: condition: on-failure + volumes: + - redis-cache-data:/data scheduler: - image: frappe/erpnext:v15.74.0 + image: frappe/erpnext:v15.7.0 networks: - frappe_network deploy: restart_policy: condition: on-failure - command: - - bench - - schedule + command: ["bench", "schedule"] volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs websocket: - image: frappe/erpnext:v15.74.0 + image: frappe/erpnext:v15.7.0 networks: - frappe_network deploy: restart_policy: condition: on-failure - command: - - node - - /home/frappe/frappe-bench/apps/frappe/socketio.js + command: ["node", "/home/frappe/frappe-bench/apps/frappe/socketio.js"] volumes: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs @@ -270,10 +241,11 @@ services: volumes: db-data: redis-queue-data: + redis-cache-data: sites: logs: traefik-letsencrypt: networks: frappe_network: - driver: bridge + driver: bridge \ No newline at end of file