From 12d08631088105703af91d85ae4f1dfccc4bdbba Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Mon, 27 Apr 2026 22:47:04 -0700 Subject: [PATCH] =?UTF-8?q?stacks/fish-s2:=20build=20from=20dockerfile.dev?= =?UTF-8?q?=20=E2=80=94=20upstream=20has=20no=20plain=20Dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First fish-s2 deploy attempt failed in step 9/11: failed to read dockerfile: open dockerfile: no such file or directory Upstream fishaudio/fish-speech ships: * dockerfile.dev (lowercase, dev/test image) * compose.yml + compose.base.yml (intended deploy path: `docker compose --profile server up`) There is no standalone production Dockerfile. The dockerfile.dev image is what their own compose.yml builds from anyway, so building against it directly is functionally equivalent to using their compose profile — we just keep our own restart-policy / labels / bind-mount conventions on the outer compose. Comment in the build block now documents this so future-Claude doesn't re-walk the path. --- stacks/fish-s2/compose.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/stacks/fish-s2/compose.yaml b/stacks/fish-s2/compose.yaml index 7098701..450104f 100644 --- a/stacks/fish-s2/compose.yaml +++ b/stacks/fish-s2/compose.yaml @@ -26,9 +26,16 @@ services: image: local/fish-s2:${FISH_S2_TAG} build: context: https://github.com/fishaudio/fish-speech.git#${FISH_S2_SHA} - dockerfile: dockerfile + # Upstream ships `dockerfile.dev` (lowercase, dev/test image) + # rather than a plain Dockerfile — there is no production + # Dockerfile. Their intended path is `docker compose --profile + # server up` against their own compose.yml; we use the same + # underlying dockerfile.dev image but layer our own compose on + # top so it slots into our fleet conventions (restart, labels, + # bind mounts, healthcheck). + dockerfile: dockerfile.dev args: - # Upstream's Dockerfile reads BACKEND to choose CUDA vs CPU + # Upstream's dockerfile.dev reads BACKEND to choose CUDA vs CPU # paths during pip install. We always want CUDA on irv-ml1. BACKEND: cuda container_name: fish-s2