Ctrl K
ComunidadGuías…

docker/entrypoint.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/bin/sh
set -eu

# The migrator and API server are separate processes, but startup retry time is
# one container-level budget. Both binaries derive their remaining time from
# this entrypoint timestamp. Always overwrite inherited values to avoid reusing
# a stale timestamp after a container restart.
export MULTICA_INTERNAL_DATABASE_STARTUP_STARTED_AT_UNIX="$(date +%s)"

migrate_pid=""

stop_migration() {
  signal="$1"
  exit_code="$2"
  trap - TERM INT
  if [ -n "$migrate_pid" ]; then
    kill "-$signal" "$migrate_pid" 2>/dev/null || true
    wait "$migrate_pid" 2>/dev/null || true
  fi
  exit "$exit_code"
}

trap 'stop_migration TERM 143' TERM
trap 'stop_migration INT 130' INT

echo "Running database migrations..."
./migrate up &
migrate_pid=$!
if wait "$migrate_pid"; then
  migrate_status=0
else
  migrate_status=$?
fi
migrate_pid=""
trap - TERM INT
if [ "$migrate_status" -ne 0 ]; then
  exit "$migrate_status"
fi

echo "Starting server..."
exec ./server