| FROM python:3.12-slim-bookworm AS stage-1 | |
| ARG TARGETARCH | |
| ARG HUGGINGFACE_MODEL=fish-speech-1.5 | |
| ARG HF_ENDPOINT=https://huggingface.co | |
| WORKDIR /opt/fish-speech | |
| RUN set -ex \ | |
| && pip install huggingface_hub \ | |
| && HF_ENDPOINT=${HF_ENDPOINT} huggingface-cli download --resume-download fishaudio/${HUGGINGFACE_MODEL} --local-dir checkpoints/${HUGGINGFACE_MODEL} | |
| FROM python:3.12-slim-bookworm | |
| ARG TARGETARCH | |
| ARG DEPENDENCIES=" \ | |
| ca-certificates \ | |
| libsox-dev \ | |
| build-essential \ | |
| cmake \ | |
| libasound-dev \ | |
| portaudio19-dev \ | |
| libportaudio2 \ | |
| libportaudiocpp0 \ | |
| ffmpeg" | |
| RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ | |
| --mount=type=cache,target=/var/lib/apt,sharing=locked \ | |
| set -ex \ | |
| && rm -f /etc/apt/apt.conf.d/docker-clean \ | |
| && echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' >/etc/apt/apt.conf.d/keep-cache \ | |
| && apt-get update \ | |
| && apt-get -y install --no-install-recommends ${DEPENDENCIES} \ | |
| && echo "no" | dpkg-reconfigure dash | |
| WORKDIR /opt/fish-speech | |
| COPY . . | |
| RUN --mount=type=cache,target=/root/.cache,sharing=locked \ | |
| set -ex \ | |
| && pip install -e .[stable] | |
| COPY --from=stage-1 /opt/fish-speech/checkpoints /opt/fish-speech/checkpoints | |
| ENV GRADIO_SERVER_NAME="0.0.0.0" | |
| EXPOSE 7860 | |
| CMD ["./entrypoint.sh"] | |