diff --git a/Dockerfile b/Dockerfile index 53ba4cc..be47096 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,51 +1,63 @@ ARG DEBIAN_RELEASE=buster -FROM debian:$DEBIAN_RELEASE -LABEL maintainer="Jan Dittberner " +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 \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - build-essential \ - dumb-init \ - gettext \ - git \ - python3-dev \ - python3-pip \ - python3-setuptools \ - python3-virtualenv \ - python3-wheel \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/*.* + && apt-get install -y --no-install-recommends \ + build-essential \ + curl \ + git \ + libpq-dev \ + python3-dev \ + python3-setuptools \ + python3-virtualenv \ + python3-wheel -RUN python3 -m pip install --prefix=/usr/local pipenv +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 " RUN apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - libpq-dev \ - postgresql-client \ + && 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/lib/apt/lists/*.* - -ARG GVAGID=2000 -ARG GVAUID=2000 + && rm -rf /var/cache/apt/archives /var/lib/apt/lists/* ARG GVAAPP=gva +ARG GVAGID=2000 +ARG GVAUID=2000 VOLUME /srv/$GVAAPP/media /srv/$GVAAPP/static WORKDIR /srv/$GVAAPP -COPY Pipfile Pipfile.lock /srv/$GVAAPP/ - 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 + 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 USER $GVAAPP -RUN python3 -m virtualenv --python=python3 /home/$GVAAPP/$GVAAPP-venv ; \ - /home/$GVAAPP/$GVAAPP-venv/bin/python3 -m pip install -U pip ; \ - VIRTUAL_ENV=/home/$GVAAPP/$GVAAPP-venv pipenv install --deploy --ignore-pipfile --dev VOLUME /srv/$GVAAPP diff --git a/gva.sh b/gva.sh index 4b0f3c2..3ca009c 100755 --- a/gva.sh +++ b/gva.sh @@ -15,7 +15,7 @@ done echo " db is ready" -. /home/gva/gva-venv/bin/activate +. /srv/gva/.venv/bin/activate cd /srv/gva/gnuviechadmin python3 manage.py compilemessages python3 manage.py collectstatic --noinput