11FROM python:3.11-bullseye
2+ COPY --from=ghcr.io/astral-sh/uv:0.6.2 /uv /uvx /bin/
23
4+ LABEL maintainer=
"GO Dev <[email protected] >" 35LABEL org.opencontainers.image.source="https://github.com/IFRCGo/go-api"
46
57ENV PYTHONUNBUFFERED=1
8+
9+ ENV UV_COMPILE_BYTECODE=1
10+ ENV UV_LINK_MODE=copy
11+ ENV UV_PROJECT_ENVIRONMENT="/usr/local/"
12+ ENV UV_CACHE_DIR="/root/.cache/uv"
13+
614EXPOSE 80
715EXPOSE 443
816
9- RUN apt-get update && \
17+ RUN apt-get update -y && \
1018 apt-get install -y --no-install-recommends \
1119 # FIXME: Make sure all packages are used/required
1220 nginx mdbtools vim tidy less gettext \
@@ -19,17 +27,11 @@ RUN apt-get update && \
1927ENV HOME=/home/ifrc
2028WORKDIR $HOME
2129
22- COPY pyproject.toml poetry.lock $HOME/
23-
2430# Upgrade pip and install python packages for code
25- RUN pip install --upgrade --no-cache-dir pip "poetry>=2.1,<2.2" \
26- && poetry --version \
27- # Configure to use system instead of virtualenvs
28- && poetry config virtualenvs.create false \
29- && poetry install --no-root \
30- && poetry add playwright \
31- # Clean-up
32- && pip uninstall -y poetry virtualenv-clone virtualenv
31+ RUN --mount=type=cache,target=$UV_CACHE_DIR \
32+ --mount=type=bind,source=uv.lock,target=uv.lock \
33+ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
34+ uv sync --frozen --no-install-project --all-groups
3335
3436RUN playwright install \
3537 && playwright install-deps
0 commit comments