entrypoint.sh 668 B

12345678910111213141516171819202122232425
  1. #!/bin/sh
  2. set -eu
  3. DATA_DIR=${APP_DATA_DIR:-/app/data}
  4. BACKUP_DIR=${APP_BACKUP_DIR:-$DATA_DIR/backups}
  5. DATABASE_FILE=${APP_DATABASE_FILE:-$DATA_DIR/okr-performance.db}
  6. umask 027
  7. mkdir -p "$DATA_DIR" "$BACKUP_DIR"
  8. WRITE_PROBE="$DATA_DIR/.write-probe-$$"
  9. if ! touch "$WRITE_PROBE" 2>/dev/null; then
  10. echo "错误:数据库目录不可写:$DATA_DIR" >&2
  11. echo "请确认宿主机目录存在且 Docker 对其拥有写权限。" >&2
  12. exit 1
  13. fi
  14. rm -f "$WRITE_PROBE"
  15. if [ -f "$DATABASE_FILE" ]; then
  16. echo "使用现有 SQLite 数据库:$DATABASE_FILE"
  17. else
  18. echo "未发现 SQLite 数据库,将由应用执行首次初始化:$DATABASE_FILE"
  19. fi
  20. exec "$@"