dockerfile 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. FROM python:3.12-slim-bookworm AS stage-1
  2. ARG TARGETARCH
  3. ARG HUGGINGFACE_MODEL=fish-speech-1.4
  4. ARG HF_ENDPOINT=https://huggingface.co
  5. WORKDIR /opt/fish-speech
  6. RUN set -ex \
  7. && pip install huggingface_hub \
  8. && HF_ENDPOINT=${HF_ENDPOINT} huggingface-cli download --resume-download fishaudio/${HUGGINGFACE_MODEL} --local-dir checkpoints/${HUGGINGFACE_MODEL}
  9. FROM python:3.12-slim-bookworm
  10. ARG TARGETARCH
  11. ARG DEPENDENCIES=" \
  12. ca-certificates \
  13. libsox-dev \
  14. build-essential \
  15. cmake \
  16. libasound-dev \
  17. portaudio19-dev \
  18. libportaudio2 \
  19. libportaudiocpp0 \
  20. ffmpeg"
  21. RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
  22. --mount=type=cache,target=/var/lib/apt,sharing=locked \
  23. set -ex \
  24. && rm -f /etc/apt/apt.conf.d/docker-clean \
  25. && echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' >/etc/apt/apt.conf.d/keep-cache \
  26. && apt-get update \
  27. && apt-get -y install --no-install-recommends ${DEPENDENCIES} \
  28. && echo "no" | dpkg-reconfigure dash
  29. WORKDIR /opt/fish-speech
  30. COPY . .
  31. RUN --mount=type=cache,target=/root/.cache,sharing=locked \
  32. set -ex \
  33. && pip install -e .[stable]
  34. COPY --from=stage-1 /opt/fish-speech/checkpoints /opt/fish-speech/checkpoints
  35. ENV GRADIO_SERVER_NAME="0.0.0.0"
  36. EXPOSE 7860
  37. CMD ["./entrypoint.sh"]