rebuild(deploy): add Portainer preflight stack

This commit is contained in:
leefer
2026-07-30 11:52:54 +08:00
parent 05f291a182
commit 67e279a1d5
7 changed files with 184 additions and 3 deletions
+49
View File
@@ -0,0 +1,49 @@
x-runtime: &runtime
build:
context: .
image: ${APP_IMAGE:-xiaobai-review-next:preflight}
init: true
environment:
APP_ENV: production
APP_HOST: 0.0.0.0
APP_PORT: 8765
APP_DATA_DIR: /app/data
APP_DATABASE_PATH: /app/data/xiaobai.db
APP_PRIVATE_MENTOR_SKILLS_DIR: /app/data/private-mentor-skills
APP_ENCRYPTION_KEY: ${APP_ENCRYPTION_KEY:?APP_ENCRYPTION_KEY must be set}
APP_LOG_LEVEL: ${APP_LOG_LEVEL:-INFO}
APP_TIMEZONE: ${APP_TIMEZONE:-Asia/Shanghai}
volumes:
- ${APP_STORAGE_PATH:?APP_STORAGE_PATH must be a dedicated preflight directory}:/app/data
read_only: true
tmpfs:
- /tmp:size=64m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
services:
migration:
<<: *runtime
restart: "no"
command:
- python
- -m
- tools.legacy_migration
- --source
- /app/data/legacy-review.db
- --target
- /app/data/xiaobai.db
- --report
- /app/data/migration-report.json
web:
<<: *runtime
restart: unless-stopped
ports:
- "${APP_PUBLISH_PORT:-8876}:8765"
depends_on:
migration:
condition: service_completed_successfully
stop_grace_period: 30s