stacks/fish-s2: build from dockerfile.dev — upstream has no plain Dockerfile

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.
This commit is contained in:
vh
2026-04-27 22:47:04 -07:00
parent 16d018ff96
commit 12d0863108
+9 -2
View File
@@ -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