docker-entrypoint.sh
Rama main · réplica de lectura del repositorio original.
#!/bin/sh
set -eu
# Adopt volume created by an earlier root-only release, then drop privileges
if [ "$(id -u)" = "0" ]; then
chown -R node:node /app/data
exec su-exec node "$0" "$@"
fi
api_pid=""
web_pid=""
shutdown() {
trap - TERM INT
[ -n "$api_pid" ] && kill -TERM "$api_pid" 2>/dev/null || true
[ -n "$web_pid" ] && kill -TERM "$web_pid" 2>/dev/null || true
wait 2>/dev/null || true
}
trap shutdown TERM INT
cd /app/backend
node dist/main &
api_pid=$!
cd /app/frontend
node web-server/start.ts &
web_pid=$!
while kill -0 "$api_pid" 2>/dev/null && kill -0 "$web_pid" 2>/dev/null; do
sleep 1
done
if ! kill -0 "$api_pid" 2>/dev/null; then
echo "guardian: api process exited, shutting down container" >&2
else
echo "guardian: web process exited, shutting down container" >&2
fi
shutdown
exit 1