cd1c6737e8
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 2m11s
Cloud Run gen2 doesn't provide eth0 with a unicast IP, causing k3s flannel to crash on every container start. k3s was also wrong architecture for Cloud Run (HPA inside a container, k3s overhead for one process). Changes: - entrypoint.sh: replace k3s server with a bash watchdog loop that starts soul-demo directly and restarts it on crash (3s backoff) - Dockerfile.stage: remove k3s binary, soul-demo-image.tar, k3s manifests and their associated dirs/envvars; keep soul-demo binary only - stage.yaml: remove 'Download k3s binary' step; rename and simplify soul-demo build step to compile binary only (no OCI image/tar) - dev.yaml: update soul-demo placeholder step (binary not tar) - manifest.el: document HAVE_CURL requirement since manifest.el has no c_flags/link_flags directive support
27 lines
999 B
Bash
27 lines
999 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
if [ "${SKIP_K3S:-0}" = "1" ]; then
|
|
echo "[entrypoint] SKIP_K3S=1: starting neuron-web directly (no soul-demo)."
|
|
exec /usr/local/bin/neuron-web
|
|
fi
|
|
|
|
# Soul-demo watchdog: start soul-demo and restart it automatically on crash.
|
|
# Cloud Run gen2 doesn't reliably provide eth0 with a unicast IP, so k3s flannel
|
|
# fails at startup. Running soul-demo directly is simpler, lighter, and fully
|
|
# self-healing. Cloud Run handles horizontal scaling — no HPA needed.
|
|
echo "[entrypoint] Starting soul-demo watchdog on :${NEURON_PORT:-7772}..."
|
|
(
|
|
while true; do
|
|
echo "[soul-watchdog] starting soul-demo (NEURON_HOME=${NEURON_HOME})"
|
|
/usr/local/bin/soul-demo 2>&1 || true
|
|
echo "[soul-watchdog] soul-demo exited, restarting in 3s..."
|
|
sleep 3
|
|
done
|
|
) &
|
|
|
|
# Start neuron-web immediately — do NOT block.
|
|
# Cloud Run startup probe requires port 8080 to answer within the timeout.
|
|
echo "[entrypoint] Starting neuron-web on port ${PORT:-8080}..."
|
|
exec /usr/local/bin/neuron-web
|