FROM python:3.11-slim AS base ENV PYTHONDONTWRITEBYTECODE 1 ENV USERNAME "secretsanta" ENV APP_HOME "/home/$USERNAME" ENV APP_PATH "$APP_HOME/src" ARG uid=10000 ARG gid=10000 # hadolint ignore=DL3001,DL3008 RUN apt-get -y update \ && apt-get -y upgrade \ && apt-get -y install git curl make python3-virtualenv --no-install-recommends \ && rm -rf /var/lib/apt/lists/* \ && groupadd -g "$gid" "$USERNAME" \ && useradd -lu "$uid" -g "$gid" "$USERNAME" \ && mkhomedir_helper "$USERNAME" \ && mkdir "$APP_PATH" \ && chown "$uid:$gid" "$APP_PATH" USER "$USERNAME" ENV PATH="${PATH}:$APP_HOME/.local/bin" ENV PYTHONPATH "$APP_PATH" RUN pip install pipx==1.2.0 --no-cache-dir \ && pipx install pdm==2.10 WORKDIR "$APP_PATH" ENV POETRY_VIRTUALENVS_IN_PROJECT=1 COPY --chown="$USERNAME" pyproject.toml pdm.lock Makefile README.md LICENSE ./ COPY --chown="$USERNAME" apps/ apps/ COPY --chown="$USERNAME" secretsanta/ secretsanta/ RUN pdm install FROM base AS run RUN pdm install -G litestar WORKDIR "$APP_PATH/apps/http/litestar" CMD ["pdm", "run", "litestar", "run"]