From 6dffa377f1705b4eae229fa26edf927ef5f4243a Mon Sep 17 00:00:00 2001 From: Viswamedha Nalabotu Date: Sat, 20 Dec 2025 23:29:11 +0000 Subject: [PATCH] Set to run on tagged, with celery and redis services --- .gitlab-ci.yml | 5 +++-- compose/prod/celery/Dockerfile | 26 ++++++++++++++++++++++++++ compose/prod/docker-compose.yml | 25 +++++++++++++++++++++++++ compose/prod/{ => python}/Dockerfile | 0 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 compose/prod/celery/Dockerfile rename compose/prod/{ => python}/Dockerfile (100%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c4afd1f..966a8cb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,8 +32,9 @@ build_and_push: - echo "$REGISTRY_PASSWORD" | docker login -u "$REGISTRY_USERNAME" --password-stdin "$REGISTRY_URL" - export IMAGE_NAME="${REGISTRY_URL}/${IMAGE_PATH}:${IMAGE_TAG}" - echo "Building image ${IMAGE_NAME}" - - docker build -t "$IMAGE_NAME" -f ./compose/prod/Dockerfile --no-cache . + - docker build -t "$IMAGE_NAME" -f ./compose/prod/python/Dockerfile --no-cache . - echo "Pushing image ${IMAGE_NAME}" - docker push "$IMAGE_NAME" rules: - - if: $CI_COMMIT_BRANCH == "main" + - if: $CI_COMMIT_TAG + when: always diff --git a/compose/prod/celery/Dockerfile b/compose/prod/celery/Dockerfile new file mode 100644 index 0000000..e416285 --- /dev/null +++ b/compose/prod/celery/Dockerfile @@ -0,0 +1,26 @@ +FROM python:3.12.0-slim + +LABEL org.opencontainers.image.title="Dynavera Celery Worker" +LABEL org.opencontainers.image.source="https://git.cs.bham.ac.uk/projects-2025-26/vxn217" + +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONUNBUFFERED=1 + +WORKDIR /app + +RUN apt-get update && apt-get install --no-install-recommends -y \ + build-essential \ + libpq-dev \ + && rm -rf /var/lib/apt/lists/* + +COPY requirements/* . +RUN pip install --no-cache-dir -r prod.txt + +COPY manage.py manage.py +COPY config config +COPY apps apps +COPY data data + +RUN mkdir -p /app/static + +CMD ["celery", "-A", "config.celery", "worker", "--loglevel=info"] diff --git a/compose/prod/docker-compose.yml b/compose/prod/docker-compose.yml index d419a7a..8dffe7a 100644 --- a/compose/prod/docker-compose.yml +++ b/compose/prod/docker-compose.yml @@ -38,6 +38,31 @@ services: networks: - proxy + fyp-redis: + image: redis:7-alpine + container_name: fyp-redis + restart: unless-stopped + networks: + - proxy + + fyp-celery: + build: + context: ./ + dockerfile: compose/prod/celery/Dockerfile + image: ${CELERY_IMAGE:-fyp-celery:latest} + container_name: fyp-celery + restart: unless-stopped + env_file: + - ../../.env + depends_on: + - fyp-redis + - fyp-postgres + networks: + - proxy + volumes: + - ../../static:/app/static + - ../../media:/app/media + fyp-watchtower: image: containrrr/watchtower command: diff --git a/compose/prod/Dockerfile b/compose/prod/python/Dockerfile similarity index 100% rename from compose/prod/Dockerfile rename to compose/prod/python/Dockerfile