FROM docker.io/python:3.12.10-alpine3.21 ENV \ LANG=C.UTF-8 \ LC_ALL=C.UTF-8 \ # python: PYTHONFAULTHANDLER=1 \ PYTHONUNBUFFERED=1 \ PYTHONHASHSEED=random \ PYTHONDONTWRITEBYTECODE=1 RUN apk add --update --no-cache zlib-dev libxml2-dev libxslt-dev libmemcached-dev \ build-base gcc make alpine-sdk musl-dev postgresql-dev openldap-dev \ py3-distutils-extra py3-distutils-extra-pyc shadow python3-dev linux-headers pcre-dev ENV VIRTUAL_ENV=/venv ENV DJANGO_CONFIGURATION=production ENV \ # pip: PIP_NO_CACHE_DIR=off \ PIP_DISABLE_PIP_VERSION_CHECK=on \ PIP_DEFAULT_TIMEOUT=100 RUN pip install --upgrade pip wheel RUN python3 -m venv $VIRTUAL_ENV COPY requirements.txt . RUN . /venv/bin/activate && pip install -r requirements.txt RUN mkdir -p /app COPY ./ /app/ WORKDIR /app RUN . /venv/bin/activate && \ DJANGO_SECRET_KEY=dummy \ DJANGO_STATIC_ROOT=/app/static ./manage.py collectstatic --no-input RUN groupadd --gid 1001 app \ && useradd --home-dir /app --shell /bin/bash --gid app --uid 1001 app RUN chown -R app:app ./ USER app ENV PATH="/venv/bin:$PATH"