From fc8de40524a897cb409fa7a88d970e24ab4354df Mon Sep 17 00:00:00 2001 From: Patrick Mayr Date: Fri, 17 Oct 2025 14:21:50 +0200 Subject: [PATCH] add dockerfile only for django project --- fet2020/.dockerignore | 8 +++++- fet2020/Dockerfile | 48 ++++++++++++++++++++++++++++++++++++ fet2020/docker-entrypoint.sh | 16 ++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 fet2020/Dockerfile create mode 100644 fet2020/docker-entrypoint.sh diff --git a/fet2020/.dockerignore b/fet2020/.dockerignore index 48c75600..3291b5af 100644 --- a/fet2020/.dockerignore +++ b/fet2020/.dockerignore @@ -1 +1,7 @@ -.git/* +.git +.ruff_cache +.venv +files +whoosh_index +Dockerfile +db.sqlite3 diff --git a/fet2020/Dockerfile b/fet2020/Dockerfile new file mode 100644 index 00000000..355cecf3 --- /dev/null +++ b/fet2020/Dockerfile @@ -0,0 +1,48 @@ +FROM python:3.13-alpine + +# Set environment variables +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONUNBUFFERED=1 + +# Install system dependencies +RUN apk add --no-cache --virtual .build-deps ca-certificates gcc linux-headers \ + musl-dev \ + jpeg-dev \ + zlib-dev \ + libffi-dev \ + mysql \ + mariadb-dev \ + freetype-dev + +# Install latest version of uv +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ + +# # Maybe needed for mysqlclient >= 2.2.0 +# RUN apt-get update \ +# && apt-get upgrade -y \ +# && apt-get install -y gcc default-libmysqlclient-dev build-essential pkg-config + +# Run python in venv +RUN python -m venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" + +WORKDIR /usr/src/app + +# Install project dependencies +COPY pyproject.toml . +RUN uv export --no-hashes --no-dev --format requirements-txt > requirements.txt +# RUN uv export --no-hashes --no-dev --frozen --format requirements-txt > requirements.txt +RUN pip install --upgrade pip +RUN pip install --no-cache-dir -r requirements.txt + +# Copy django project +COPY . . + +# Create APIKEY.txt file for etherpad +RUN mkdir -p ./etherpad +RUN touch ./etherpad/APIKEY.txt +RUN echo "haDF223lfaH79823qwSSdF" >> ./etherpad/APIKEY.txt + +EXPOSE 8000 + +ENTRYPOINT ["./docker-entrypoint.sh"] diff --git a/fet2020/docker-entrypoint.sh b/fet2020/docker-entrypoint.sh new file mode 100644 index 00000000..a44c3f2d --- /dev/null +++ b/fet2020/docker-entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# # Collect static files +# echo "Collect static files" +# python manage.py collectstatic --noinput + +# Apply database migrations +echo "Apply database migrations" +python manage.py migrate + +# Start server +echo "Starting server" +# TODO: FIX insecure!!! +python manage.py runserver --insecure 0.0.0.0:8000 + +exec "$@"