FROM python:3.9-bullseye AS base
ENV PYTHONUNBUFFERED=1
RUN pip install poetry
WORKDIR /code
RUN apt-get update && apt-get install -y --no-install-recommends gettext-base gettext libpq-dev graphviz
COPY . /code/
CMD ./docker/docker-entrypoint.sh

FROM base AS ldap
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get install -y --no-install-recommends libldap-dev slapd libsasl2-dev

FROM base AS mysql
RUN poetry install --extras "mysql"

FROM base AS postgres
RUN poetry install --extras "postgresql"

FROM ldap AS mysql-ldap
RUN poetry install --extras "mysql ldap"

FROM ldap AS postgres-ldap
RUN poetry install --extras "postgresql ldap"

FROM base AS mysql-dev
ENV RUN_TESTS=no
RUN poetry install --with dev --extras "mysql"

FROM base AS postgres-dev
ENV RUN_TESTS=no
RUN poetry install --with dev --extras "postgresql"

FROM ldap AS mysql-ldap-dev
ENV RUN_TESTS=no
RUN poetry install --with dev --extras "mysql ldap"

FROM ldap AS postgres-ldap-dev
ENV RUN_TESTS=no
RUN poetry install --with dev --extras "postgresql ldap"