AppRunner: Support Nodejs 24.0.2

Change-Id: I37659d91d8211d5cfb4240a885da5a51ef43774a
diff --git a/apps/app-runner/Dockerfile.nodejs.24.0.2 b/apps/app-runner/Dockerfile.nodejs.24.0.2
new file mode 100644
index 0000000..0c0397c
--- /dev/null
+++ b/apps/app-runner/Dockerfile.nodejs.24.0.2
@@ -0,0 +1,8 @@
+FROM library/node:24.0.2-alpine3.20
+
+ARG TARGETARCH
+
+RUN apk update
+RUN apk add gcc g++ make musl-dev python3 py3-setuptools
+
+COPY app-runner_${TARGETARCH} /usr/bin/app-runner
diff --git a/apps/app-runner/Makefile b/apps/app-runner/Makefile
index eeffb68..86ec333 100644
--- a/apps/app-runner/Makefile
+++ b/apps/app-runner/Makefile
@@ -10,6 +10,7 @@
 manifest_dest_nextjs_deno_2_0_0=docker://docker.io/$(repo_name)/app-runner:nextjs-deno-2.0.0
 manifest_dest_deno_2_2_0=docker://docker.io/$(repo_name)/app-runner:deno-2.2.0
 manifest_dest_nodejs_23_1_0=docker://docker.io/$(repo_name)/app-runner:nodejs-23.1.0
+manifest_dest_nodejs_24_0_2=docker://docker.io/$(repo_name)/app-runner:nodejs-24.0.2
 endif
 
 clean:
@@ -119,7 +120,7 @@
 	$(podman) manifest push $(repo_name)/app-runner:nextjs-deno-2.0.0 $(manifest_dest_nextjs_deno_2_0_0)
 	$(podman) manifest rm $(repo_name)/app-runner:nextjs-deno-2.0.0
 
-# Nextjs
+# Nodejs
 
 push_nodejs_23_1_0_arm64: clean build_arm64
 	$(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:nodejs-23.1.0-arm64 -f Dockerfile.nodejs.23.1.0 $(docker_flags) .
@@ -133,6 +134,18 @@
 	$(podman) manifest create $(repo_name)/app-runner:nodejs-23.1.0 $(repo_name)/app-runner:nodejs-23.1.0-arm64 $(repo_name)/app-runner:nodejs-23.1.0-amd64
 	$(podman) manifest push --purge $(repo_name)/app-runner:nodejs-23.1.0 $(manifest_dest_nodejs_23_1_0)
 
+push_nodejs_24_0_2_arm64: clean build_arm64
+	$(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:nodejs-24.0.2-arm64 -f Dockerfile.nodejs.24.0.2 $(docker_flags) .
+	$(podman) push $(repo_name)/app-runner:nodejs-24.0.2-arm64
+
+push_nodejs_24_0_2_amd64: clean build_amd64
+	$(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:nodejs-24.0.2-amd64 -f Dockerfile.nodejs.24.0.2 $(docker_flags) .
+	$(podman) push $(repo_name)/app-runner:nodejs-24.0.2-amd64
+
+push_nodejs_24_0_2: push_nodejs_24_0_2_arm64 push_nodejs_24_0_2_amd64
+	$(podman) manifest create $(repo_name)/app-runner:nodejs-24.0.2 $(repo_name)/app-runner:nodejs-24.0.2-arm64 $(repo_name)/app-runner:nodejs-24.0.2-amd64
+	$(podman) manifest push --purge $(repo_name)/app-runner:nodejs-24.0.2 $(manifest_dest_nodejs_24_0_2)
+
 # Deno
 
 push_deno_2_2_0_arm64: clean build_arm64
@@ -150,4 +163,4 @@
 
 
 # all
-push: push_golang_1_22_0 push_golang_1_20_0 push_hugo push_php_8_2_apache push_nextjs_deno_2_0_0 push_nodejs_23_1_0 push_deno_2_2_0
+push: push_golang_1_22_0 push_golang_1_20_0 push_hugo push_php_8_2_apache push_nextjs_deno_2_0_0 push_nodejs_23_1_0 push_nodejs_24_0_2 push_deno_2_2_0
diff --git a/apps/app-runner/server.go b/apps/app-runner/server.go
index ef14842..83bcac4 100644
--- a/apps/app-runner/server.go
+++ b/apps/app-runner/server.go
@@ -60,7 +60,9 @@
 	http.HandleFunc("/update", s.handleUpdate)
 	http.HandleFunc("/ready", s.handleReady)
 	http.HandleFunc("/logs", s.handleLogs)
-	go s.pingManager()
+	if s.managerAddr != "" && s.appId != "" {
+		go s.pingManager()
+	}
 	if err := s.run(); err != nil {
 		return err
 	}