| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/bin/sh
- set -eu
- DATA_DIR=${APP_DATA_DIR:-/app/data}
- BACKUP_DIR=${APP_BACKUP_DIR:-$DATA_DIR/backups}
- DATABASE_FILE=${APP_DATABASE_FILE:-$DATA_DIR/okr-performance.db}
- umask 027
- case ",${SPRING_PROFILES_ACTIVE:-}," in
- *,prod,*)
- JWT_SECRET=${APP_JWT_SECRET:-}
- if [ "${#JWT_SECRET}" -lt 32 ]; then
- echo "错误:生产环境 APP_JWT_SECRET 长度必须至少 32 字符。" >&2
- echo "请复制 .env.example 为 .env,设置随机密钥后重新启动。" >&2
- exit 1
- fi
- ;;
- esac
- mkdir -p "$DATA_DIR" "$BACKUP_DIR"
- WRITE_PROBE="$DATA_DIR/.write-probe-$$"
- if ! touch "$WRITE_PROBE" 2>/dev/null; then
- echo "错误:数据库目录不可写:$DATA_DIR" >&2
- echo "请确认宿主机目录存在且 Docker 对其拥有写权限。" >&2
- exit 1
- fi
- rm -f "$WRITE_PROBE"
- if [ -f "$DATABASE_FILE" ]; then
- echo "使用现有 SQLite 数据库:$DATABASE_FILE"
- else
- echo "未发现 SQLite 数据库,将由应用执行首次初始化:$DATABASE_FILE"
- fi
- exec "$@"
|