ARG DEBIAN_RELEASE=buster
FROM debian:$DEBIAN_RELEASE AS builder

ARG GVAAPP=gva
ARG POETRY_VERSION=1.3.1

ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
      build-essential \
      curl \
      git \
      libpq-dev \
      python3-dev \
      python3-setuptools \
      python3-virtualenv \
      python3-wheel

RUN curl -sSL https://install.python-poetry.org | POETRY_HOME=/root/.local POETRY_VERSION=$POETRY_VERSION python3 - \
    && /root/.local/bin/poetry config virtualenvs.in-project true

WORKDIR /srv/$GVAAPP

COPY poetry.lock pyproject.toml /srv/$GVAAPP/

RUN /root/.local/bin/poetry install --only=main

FROM debian:$DEBIAN_RELEASE
LABEL maintainer="Jan Dittberner <jan@dittberner.info>"

ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
       ca-certificates \
       dumb-init \
       gettext \
       postgresql-client \
       python3 \
       python3-pip \
       python3-wheel \
    && apt-get clean \
    && rm -rf /var/cache/apt/archives /var/lib/apt/lists/*

ARG GVAAPP=gva
ARG GVAGID=2000
ARG GVAUID=2000

RUN addgroup --gid $GVAGID $GVAAPP ; \
    adduser --home /home/$GVAAPP --shell /bin/bash --uid $GVAUID --gid $GVAGID --disabled-password \
            --gecos "User for gnuviechadmin component $GVAAPP" $GVAAPP

COPY --chown=$GVAAPP:$GVAAPP --from=builder /srv/$GVAAPP/.venv /srv/$GVAAPP/.venv

WORKDIR /srv/$GVAAPP

VOLUME /srv/$GVAAPP/media /srv/$GVAAPP/static

VOLUME /srv/$GVAAPP/gnuviechadmin

EXPOSE 8000

COPY ${GVAAPP}.sh entrypoint.sh /srv/

ENTRYPOINT ["dumb-init", "/srv/entrypoint.sh"]
