rebuild(deploy): add Portainer preflight stack
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user