secretsanta/Dockerfile
2023-12-09 11:29:28 +01:00

41 lines
1.1 KiB
Docker

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"]