70 lines
1.7 KiB
Docker
70 lines
1.7 KiB
Docker
ARG DEBIAN_RELEASE=bookworm
|
|
FROM debian:$DEBIAN_RELEASE AS builder
|
|
|
|
ARG GVAAPP=gva
|
|
ARG POETRY_VERSION=1.7.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 --no-root
|
|
|
|
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"]
|