transip-client/Dockerfile

28 lines
820 B
Docker

FROM ghcr.io/astral-sh/uv:python3.11-bookworm
# copy from the cache instead of linking since mounted volumes are used
ENV UV_LINK_MODE=copy
ENV UV_CACHE_DIR=/app/.cache/uv
ENV PATH="/app/.venv/bin:$PATH"
RUN useradd --shell /bin/bash --uid 1000 transip_client
USER transip_client
WORKDIR /app
RUN mkdir --parents /app/.cache/uv
# only install dependencies
RUN --mount=type=cache,uid=1000,target=/app/.cache/uv \
--mount=type=bind,source=uv.lock,target=/app/uv.lock \
--mount=type=bind,source=pyproject.toml,target=/app/pyproject.toml \
uv sync --frozen --no-dev --no-install-project
COPY pyproject.toml uv.lock /app
COPY transip_client /app/transip_client
# install dependencies + project
RUN --mount=type=cache,uid=1000,target=/app/.cache/uv uv sync --frozen --no-dev
ENTRYPOINT ["transip-listen"]