| FROM python:3.11-slim |
|
|
| ARG TARGETPLATFORM |
| RUN <<EOF |
| apt-get update |
| apt-get install --no-install-recommends -y curl ffmpeg |
| if [ "$TARGETPLATFORM" != "linux/amd64" ]; then |
| apt-get install --no-install-recommends -y build-essential |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y |
| fi |
| apt-get clean |
| rm -rf /var/lib/apt/lists/* |
| EOF |
| ENV PATH="/root/.cargo/bin:${PATH}" |
|
|
| WORKDIR /app |
| RUN mkdir -p voices config |
|
|
| COPY requirements*.txt /app/ |
| RUN --mount=type=cache,target=/root/.cache/pip pip install -r requirements-min.txt |
| COPY *.py *.sh *.default.yaml README.md LICENSE /app/ |
|
|
| |
| RUN chmod +x /app/*.sh |
|
|
| |
| RUN useradd -ms /bin/bash appuser |
| RUN chown -R appuser:appuser /app |
|
|
| USER appuser |
| WORKDIR /app |
|
|
| ENV TTS_HOME=voices |
| ENV HF_HOME=voices |
|
|
| CMD bash startup.min.sh |
|
|