diff --git a/pwd.yml b/pwd.yml index 99d44c34..9ae2adf0 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,5 +1,3 @@ -version: "3" - services: backend: image: frappe/erpnext:v15.70.0 @@ -46,39 +44,7 @@ services: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs - create-site: - image: frappe/erpnext:v15.70.0 - 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 --db-root-username=root --db-root-password=admin --install-app erpnext --set-default frontend; - + db: image: mariadb:10.6 networks: @@ -125,7 +91,7 @@ services: - sites:/home/frappe/frappe-bench/sites - logs:/home/frappe/frappe-bench/logs ports: - - "8080:8080" + - "80:8080" queue-long: image: frappe/erpnext:v15.70.0 diff --git a/tasks/fix-missing-db.codex.yaml b/tasks/fix-missing-db.codex.yaml new file mode 100644 index 00000000..34a9d0c9 --- /dev/null +++ b/tasks/fix-missing-db.codex.yaml @@ -0,0 +1,34 @@ +name: Fix Frappe site DB and set admin password +description: > + Автоматически проверяет наличие базы данных для Frappe-сайта, создаёт её при необходимости, + выдаёт права, и задаёт новый пароль для администратора. +language: bash +steps: + + - name: Определение имени БД и пароля + run: | + export SITE_NAME="erp.ferumrus.ru" + export DB_NAME=$(jq -r '.db_name' sites/$SITE_NAME/site_config.json) + export DB_PASSWORD=$(jq -r '.db_password' sites/$SITE_NAME/site_config.json) + echo "::set-env name=DB_NAME::$DB_NAME" + echo "::set-env name=DB_PASSWORD::$DB_PASSWORD" + + - name: Подключение к MariaDB и создание базы и пользователя (если не существует) + run: | + docker compose -f frappe_docker/pwd.yml exec -T db \ + mariadb -uroot -p"$MYSQL_ROOT_PASSWORD" <