This commit is contained in:
Dmitriyrus99 2025-07-16 12:38:19 +03:00
parent 8e404464c3
commit be4d5f4f14
2 changed files with 36 additions and 36 deletions

38
pwd.yml
View file

@ -1,5 +1,3 @@
version: "3"
services: services:
backend: backend:
image: frappe/erpnext:v15.70.0 image: frappe/erpnext:v15.70.0
@ -46,39 +44,7 @@ services:
- sites:/home/frappe/frappe-bench/sites - sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs - 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: db:
image: mariadb:10.6 image: mariadb:10.6
networks: networks:
@ -125,7 +91,7 @@ services:
- sites:/home/frappe/frappe-bench/sites - sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs - logs:/home/frappe/frappe-bench/logs
ports: ports:
- "8080:8080" - "80:8080"
queue-long: queue-long:
image: frappe/erpnext:v15.70.0 image: frappe/erpnext:v15.70.0

View file

@ -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" <<EOF
CREATE DATABASE IF NOT EXISTS \`$DB_NAME\`;
CREATE USER IF NOT EXISTS '$DB_NAME'@'%' IDENTIFIED BY '$DB_PASSWORD';
GRANT ALL PRIVILEGES ON \`$DB_NAME\`.* TO '$DB_NAME'@'%';
FLUSH PRIVILEGES;
EOF
- name: Проверка доступности БД из контейнера backend
run: |
docker compose -f frappe_docker/pwd.yml exec backend bash -c \
"mysql -h db -u$DB_NAME -p$DB_PASSWORD -e 'SHOW DATABASES LIKE \"$DB_NAME\";'"
- name: Установка нового пароля администратора
run: |
docker compose -f frappe_docker/pwd.yml exec backend bash -c \
"bench --site erp.ferumrus.ru set-admin-password fFeRu1011#f"