From 82d6f6003f8a21d1d3b13829bfe809a0c8a97e78 Mon Sep 17 00:00:00 2001 From: Patrick Jentsch Date: Wed, 13 Mar 2024 12:58:39 +0100 Subject: [PATCH] Restructure Dockerfile for better caching --- Dockerfile | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1342134f..cfe86518 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,11 +4,13 @@ FROM python:3.10.13-slim-bookworm LABEL authors="Patrick Jentsch " +# Set environment variables ENV LANG="C.UTF-8" ENV PYTHONDONTWRITEBYTECODE="1" ENV PYTHONUNBUFFERED="1" +# Install system dependencies RUN apt-get update \ && apt-get install --no-install-recommends --yes \ build-essential \ @@ -17,37 +19,42 @@ RUN apt-get update \ && rm --recursive /var/lib/apt/lists/* +# Create a non-root user RUN useradd --create-home --no-log-init nopaque \ && groupadd docker \ && usermod --append --groups docker nopaque - USER nopaque WORKDIR /home/nopaque +# Create a Python virtual environment ENV NOPAQUE_PYTHON3_VENV_PATH="/home/nopaque/.venv" RUN python3 -m venv "${NOPAQUE_PYTHON3_VENV_PATH}" ENV PATH="${NOPAQUE_PYTHON3_VENV_PATH}/bin:${PATH}" +# Install Python dependencies +COPY --chown=nopaque:nopaque requirements.txt requirements.txt +RUN python3 -m pip install --requirement requirements.txt \ + && rm requirements.txt + + +# Install the application +COPY docker-nopaque-entrypoint.sh /usr/local/bin/ + COPY --chown=nopaque:nopaque app app COPY --chown=nopaque:nopaque migrations migrations COPY --chown=nopaque:nopaque tests tests COPY --chown=nopaque:nopaque .flaskenv boot.sh config.py nopaque.py requirements.txt ./ - -RUN python3 -m pip install --requirement requirements.txt \ - && mkdir logs - - -USER root - - -COPY docker-nopaque-entrypoint.sh /usr/local/bin/ +RUN mkdir logs EXPOSE 5000 +USER root + + ENTRYPOINT ["docker-nopaque-entrypoint.sh"]