forked from serenita-org/vero
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
41 lines (30 loc) · 1.21 KB
/
Copy pathDockerfile
File metadata and controls
41 lines (30 loc) · 1.21 KB
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
ARG PYTHON_IMAGE_TAG="3.12-slim-bookworm@sha256:123be5684f39d8476e64f47a5fddf38f5e9d839baff5c023c815ae5bdfae0df7"
ARG UV_IMAGE_TAG="0.8.15@sha256:a5727064a0de127bdb7c9d3c1383f3a9ac307d9f2d8a391edc7896c54289ced0"
# uv image
FROM ghcr.io/astral-sh/uv:${UV_IMAGE_TAG} AS uv-image
# Build image
FROM docker.io/library/python:${PYTHON_IMAGE_TAG} AS build
WORKDIR /vero
# Install and compile dependencies
RUN --mount=from=uv-image,source=/uv,target=/bin/uv \
--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 --frozen --no-dev --compile-bytecode --no-install-project
# App image
FROM docker.io/library/python:${PYTHON_IMAGE_TAG}
# Place executables in the environment at the front of the path
ENV PATH="/vero/.venv/bin:$PATH"
WORKDIR /vero
RUN groupadd -g 1000 vero && \
useradd --no-create-home --shell /bin/false -u 1000 -g vero vero && \
chown -R vero:vero /vero
COPY --from=build --chown=vero:vero /vero/.venv /vero/.venv
COPY --chown=vero:vero src .
EXPOSE 8000 8001
ARG GIT_TAG
ARG GIT_COMMIT
ENV GIT_TAG=$GIT_TAG
ENV GIT_COMMIT=$GIT_COMMIT
USER vero
ENTRYPOINT ["python", "main.py"]