ci: add Dockerfile

This commit is contained in:
cătălin 2023-12-09 11:15:39 +01:00
commit 65a56f2658
Signed by: catalin
GPG key ID: 0178DF42F43E5FD2
15 changed files with 382 additions and 70 deletions

41
Dockerfile Normal file
View file

@ -0,0 +1,41 @@
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=1000
ARG gid=1000
# 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"]