stacks/fish-s2: build with target=server (multi-stage Dockerfile, default builds webui-only)

Fourth fish-s2 attempt got past build + checkpoints, then container
crashlooped silently again. Diagnosis: the upstream docker/Dockerfile
is multi-stage with `webui` and `server` targets; without specifying
a target, docker builds the LAST stage (webui — gradio-only, no
start_server.sh, no API server). start_server.sh is the entrypoint
script that lives only in the `server` stage.

Confirmed by `cat /app/start_server.sh` inside the built image:
"No such file or directory."

Upstream's compose.yml uses target: server on its server service —
doing the same here.
This commit is contained in:
2026-04-27 23:18:02 -07:00
parent fd5717c728
commit 43c7c08673
+5
View File
@@ -34,6 +34,11 @@ services:
# 403s on anonymous pulls. Build from source via docker/Dockerfile
# instead.
dockerfile: docker/Dockerfile
# Multi-stage Dockerfile — `server` stage installs start_server.sh
# and exposes the API. The default last stage is `webui` (gradio
# only), which crashloops silently because start_server.sh isn't
# there. Target=server is what upstream's compose.yml does.
target: server
args:
# Build args mirror upstream compose.base.yml defaults.
# CUDA_VER 12.9 + UV_EXTRA cu129 = the CUDA 12.9 PyTorch wheels.