mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-21 15:25:09 +00:00
feat: add picking_app dev mode and sync-assets support
- Add COMPOSE_DEV override for picking_app volume mount - Add dev-up/dev-down/dev-reload Makefile targets - Add compose.picking-dev.yaml overlay - Add compose.sync-assets.yaml overlay - Add sync-assets.sh script for assets sync between containers
This commit is contained in:
parent
a3cac96a17
commit
9067451ec7
4 changed files with 85 additions and 0 deletions
28
Makefile
28
Makefile
|
|
@ -16,6 +16,9 @@ COMPOSE_OVERRIDES := \
|
||||||
-f overrides/compose.local-origin.yaml \
|
-f overrides/compose.local-origin.yaml \
|
||||||
-f overrides/compose.backup-cron.yaml
|
-f overrides/compose.backup-cron.yaml
|
||||||
|
|
||||||
|
COMPOSE_DEV := $(COMPOSE_OVERRIDES) \
|
||||||
|
-f overrides/compose.picking-dev.yaml
|
||||||
|
|
||||||
APPS_JSON_B64 := $(shell base64 -w 0 apps.json)
|
APPS_JSON_B64 := $(shell base64 -w 0 apps.json)
|
||||||
|
|
||||||
# Приложения с pre-built esbuild-бандлами (public/dist/).
|
# Приложения с pre-built esbuild-бандлами (public/dist/).
|
||||||
|
|
@ -155,9 +158,34 @@ backup:
|
||||||
bench --site $(SITE) backup --with-files
|
bench --site $(SITE) backup --with-files
|
||||||
@echo "✓ Бэкап создан (см. sites/$(SITE)/private/backups/)"
|
@echo "✓ Бэкап создан (см. sites/$(SITE)/private/backups/)"
|
||||||
|
|
||||||
|
# ── Разработка picking_app ───────────────────────────────────
|
||||||
|
# Монтирует /home/mkr/picking_app как volume — изменения в VS Code
|
||||||
|
# сразу видны без пересборки образа.
|
||||||
|
dev-up:
|
||||||
|
docker compose $(COMPOSE_DEV) up -d --no-deps --force-recreate \
|
||||||
|
backend websocket queue-short queue-long scheduler
|
||||||
|
@echo "→ Перезапуск frontend (обновление IP backend в nginx)..."
|
||||||
|
docker compose $(COMPOSE_OVERRIDES) restart frontend
|
||||||
|
@echo "✓ Dev-режим активен. Исходники: /home/mkr/picking_app"
|
||||||
|
@echo " Страница: http://localhost:8090/app/picking-mobile"
|
||||||
|
|
||||||
|
dev-down:
|
||||||
|
docker compose $(COMPOSE_OVERRIDES) up -d --no-deps --force-recreate \
|
||||||
|
backend websocket queue-short queue-long scheduler
|
||||||
|
docker compose $(COMPOSE_OVERRIDES) restart frontend
|
||||||
|
@echo "✓ Dev-режим выключен, volume-монтирование снято"
|
||||||
|
|
||||||
|
dev-reload:
|
||||||
|
@echo "→ Сброс кэша Frappe..."
|
||||||
|
docker compose $(COMPOSE_DEV) exec backend bench --site $(SITE) clear-cache
|
||||||
|
@echo "✓ Кэш сброшен — перезагрузи страницу в браузере"
|
||||||
|
|
||||||
# ── Логи и отладка ───────────────────────────────────────────
|
# ── Логи и отладка ───────────────────────────────────────────
|
||||||
logs:
|
logs:
|
||||||
docker compose $(COMPOSE_OVERRIDES) logs -f backend
|
docker compose $(COMPOSE_OVERRIDES) logs -f backend
|
||||||
|
|
||||||
|
logs-picking:
|
||||||
|
docker compose $(COMPOSE_OVERRIDES) logs -f backend | grep -i "picking\|error\|exception\|traceback" --color
|
||||||
|
|
||||||
shell:
|
shell:
|
||||||
docker compose $(COMPOSE_OVERRIDES) exec backend bash
|
docker compose $(COMPOSE_OVERRIDES) exec backend bash
|
||||||
|
|
|
||||||
20
overrides/compose.picking-dev.yaml
Normal file
20
overrides/compose.picking-dev.yaml
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
services:
|
||||||
|
backend:
|
||||||
|
volumes:
|
||||||
|
- /home/mkr/picking_app:/home/frappe/frappe-bench/apps/picking_app/picking_app:ro
|
||||||
|
|
||||||
|
websocket:
|
||||||
|
volumes:
|
||||||
|
- /home/mkr/picking_app:/home/frappe/frappe-bench/apps/picking_app/picking_app:ro
|
||||||
|
|
||||||
|
queue-short:
|
||||||
|
volumes:
|
||||||
|
- /home/mkr/picking_app:/home/frappe/frappe-bench/apps/picking_app/picking_app:ro
|
||||||
|
|
||||||
|
queue-long:
|
||||||
|
volumes:
|
||||||
|
- /home/mkr/picking_app:/home/frappe/frappe-bench/apps/picking_app/picking_app:ro
|
||||||
|
|
||||||
|
scheduler:
|
||||||
|
volumes:
|
||||||
|
- /home/mkr/picking_app:/home/frappe/frappe-bench/apps/picking_app/picking_app:ro
|
||||||
6
overrides/compose.sync-assets.yaml
Normal file
6
overrides/compose.sync-assets.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
services:
|
||||||
|
backend:
|
||||||
|
volumes:
|
||||||
|
- ./sync-assets.sh:/usr/local/bin/sync-assets.sh:ro
|
||||||
|
command: >
|
||||||
|
/bin/bash -c "/usr/local/bin/sync-assets.sh && bench schedule"
|
||||||
31
sync-assets.sh
Executable file
31
sync-assets.sh
Executable file
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ASSETS_DIR="/home/frappe/frappe-bench/sites/assets"
|
||||||
|
APPS_DIR="/home/frappe/frappe-bench/apps"
|
||||||
|
|
||||||
|
echo "Syncing assets from apps to shared volume..."
|
||||||
|
|
||||||
|
for app in frappe erpnext hrms lms education lending newsletter drive helpdesk; do
|
||||||
|
echo "Syncing $app..."
|
||||||
|
rm -rf "$ASSETS_DIR/$app"
|
||||||
|
mkdir -p "$ASSETS_DIR/$app/dist"
|
||||||
|
cp -r "$APPS_DIR/$app/$app/public/dist/"* "$ASSETS_DIR/$app/dist/" 2>/dev/null || true
|
||||||
|
|
||||||
|
if [ -d "$APPS_DIR/$app/$app/public/images" ]; then
|
||||||
|
mkdir -p "$ASSETS_DIR/$app/images"
|
||||||
|
cp -r "$APPS_DIR/$app/$app/public/images/"* "$ASSETS_DIR/$app/images/" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$APPS_DIR/$app/$app/public/icons" ]; then
|
||||||
|
mkdir -p "$ASSETS_DIR/$app/icons"
|
||||||
|
cp -r "$APPS_DIR/$app/$app/public/icons/"* "$ASSETS_DIR/$app/icons/" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$APPS_DIR/$app/$app/public/manifest" ]; then
|
||||||
|
mkdir -p "$ASSETS_DIR/$app/manifest"
|
||||||
|
cp -r "$APPS_DIR/$app/$app/public/manifest/"* "$ASSETS_DIR/$app/manifest/" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Assets synced successfully"
|
||||||
Loading…
Reference in a new issue