#!/bin/sh set -eu if [ -z "${DATA_DIR:-}" ] && [ -d /data ]; then export DATA_DIR=/data/appdata else export DATA_DIR="${DATA_DIR:-/app/data}" fi mkdir -p "${DATA_DIR}" mkdir -p "${DATA_DIR}/redis" export AUTO_SETUP="${AUTO_SETUP:-true}" export SERVER_HOST=0.0.0.0 export SERVER_PORT="${SERVER_PORT:-8080}" export SERVER_MODE="${SERVER_MODE:-release}" export RUN_MODE="${RUN_MODE:-standard}" export TZ="${TZ:-Asia/Shanghai}" export DATABASE_SSLMODE="${DATABASE_SSLMODE:-require}" if [ -z "${REDIS_HOST:-}" ]; then export REDIS_HOST=127.0.0.1 export REDIS_PORT="${REDIS_PORT:-6379}" export REDIS_DB="${REDIS_DB:-0}" export REDIS_ENABLE_TLS=false if [ -n "${REDIS_PASSWORD:-}" ]; then redis-server --bind 127.0.0.1 --port "${REDIS_PORT}" --dir "${DATA_DIR}/redis" --save "" --appendonly no --protected-mode no --maxmemory 128mb --maxmemory-policy allkeys-lru --requirepass "${REDIS_PASSWORD}" & else redis-server --bind 127.0.0.1 --port "${REDIS_PORT}" --dir "${DATA_DIR}/redis" --save "" --appendonly no --protected-mode no --maxmemory 128mb --maxmemory-policy allkeys-lru & fi READY=0 for _ in $(seq 1 50); do if [ -n "${REDIS_PASSWORD:-}" ]; then if redis-cli -h 127.0.0.1 -p "${REDIS_PORT}" -a "${REDIS_PASSWORD}" ping >/dev/null 2>&1; then READY=1 break fi else if redis-cli -h 127.0.0.1 -p "${REDIS_PORT}" ping >/dev/null 2>&1; then READY=1 break fi fi sleep 0.2 done if [ "${READY}" != "1" ]; then echo "ERROR: local Redis failed to become ready" >&2 exit 1 fi fi exec /app/boot.sh /app/server