mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-17 13:55:08 +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.backup-cron.yaml
|
||||
|
||||
COMPOSE_DEV := $(COMPOSE_OVERRIDES) \
|
||||
-f overrides/compose.picking-dev.yaml
|
||||
|
||||
APPS_JSON_B64 := $(shell base64 -w 0 apps.json)
|
||||
|
||||
# Приложения с pre-built esbuild-бандлами (public/dist/).
|
||||
|
|
@ -155,9 +158,34 @@ backup:
|
|||
bench --site $(SITE) backup --with-files
|
||||
@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:
|
||||
docker compose $(COMPOSE_OVERRIDES) logs -f backend
|
||||
|
||||
logs-picking:
|
||||
docker compose $(COMPOSE_OVERRIDES) logs -f backend | grep -i "picking\|error\|exception\|traceback" --color
|
||||
|
||||
shell:
|
||||
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