Spaces:
Running
Running
FROM ghcr.io/astral-sh/uv:debian-slim | |
WORKDIR /app | |
RUN groupadd nonroot && useradd -g nonroot nonroot | |
# Enable bytecode compilation, Copy from the cache instead of linking since it's a mounted volume | |
ENV UV_COMPILE_BYTECODE=1 \ | |
UV_LINK_MODE=copy | |
# skipcq: DOK-DL3008 | |
RUN apt-get update && \ | |
apt-get install -qq -y --no-install-recommends espeak-ng && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* | |
# Install the project's dependencies using the lockfile and settings | |
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 \ | |
--mount=type=bind,source=.python-version,target=.python-version \ | |
uv sync --frozen --no-install-project --no-dev | |
COPY . /app | |
RUN --mount=type=cache,target=/root/.cache/uv \ | |
uv sync --frozen --no-dev; | |
# Place executables in the environment at the front of the path | |
ENV PATH=/app/.venv/bin:$PATH | |
USER nonroot | |
# Reset the entrypoint, don't invoke `uv` | |
ENTRYPOINT [] | |
CMD ["python", "src/vocalizr"] |