| #!/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 |
|
|