File size: 1,307 Bytes
eb446cb
b9a47ba
f790365
eb446cb
f790365
eb446cb
f790365
eb446cb
4694917
eb446cb
 
 
 
 
a96ed68
eb446cb
 
4694917
eb446cb
a96ed68
4694917
eb446cb
f790365
 
5c2b015
eb446cb
b9a47ba
eb446cb
a96ed68
 
eb446cb
 
 
 
4122248
a65367c
 
 
 
 
 
 
 
 
 
 
4122248
26a56bb
eb446cb
 
 
f790365
 
 
 
 
eb446cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder

ENV UV_COMPILE_BYTECODE=1 \
    UV_LINK_MODE=copy \
    UV_SYSTEM_PYTHON=1 \
    UV_PYTHON_DOWNLOADS=0 \
    UV_FROZEN=1 \
    PATH="/root/.local/bin:$PATH" 

WORKDIR /app

RUN --mount=type=cache,target=/root/.cache/uv \
    --mount=type=bind,source=uv.lock,target=uv.lock \
    --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
    uv sync --no-install-project --no-dev

COPY . /app

RUN --mount=type=cache,target=/root/.cache/uv \
    uv sync --no-dev

RUN uv tool install --quiet huggingface_hub[cli] && \
    huggingface-cli download --quiet hexgrad/Kokoro-82M && \
    uv tool uninstall --quiet huggingface-hub

FROM python:3.12-alpine AS production

ENV GRADIO_SERVER_PORT=7860 \
    GRADIO_SERVER_NAME=0.0.0.0 \
    PATH="/app/.venv/bin:$PATH"

# skipcq: DOK-DL3008
RUN addgroup vocalizr && \
    adduser -D -h /app -G vocalizr vocalizr && \
    apk update && \
    apk add --no-cache \
    build-base \
    lapack-dev \
    blas-dev \
    gfortran \
    musl-dev \
    libffi-dev \
    openssl-dev \
    zlib-dev \
    espeak-ng \
    ffmpeg && \
    rm -rf /var/cache/apk/*

WORKDIR /app

COPY --from=builder --chown=vocalizr:vocalizr /app /app

USER vocalizr

EXPOSE ${GRADIO_SERVER_PORT}

CMD ["python", "src/vocalizr"]