From 683f6c1b98962170c5795ccdb02d20b098f59160 Mon Sep 17 00:00:00 2001 From: Viswamedha Nalabotu Date: Wed, 10 Dec 2025 13:44:16 +0000 Subject: [PATCH] Added celery as service --- compose/dev/celery/Dockerfile | 18 +++++++++++++++++ compose/dev/docker-compose.yml | 35 ++++++++++++++++++++++++++++++++++ compose/dev/node/Dockerfile | 4 ++-- compose/dev/python/Dockerfile | 6 ++++-- compose/prod/start | 2 +- 5 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 compose/dev/celery/Dockerfile diff --git a/compose/dev/celery/Dockerfile b/compose/dev/celery/Dockerfile new file mode 100644 index 0000000..2a56dae --- /dev/null +++ b/compose/dev/celery/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3.12-bookworm + +RUN apt-get update && apt-get install --no-install-recommends -y \ + build-essential \ + libpq-dev \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +COPY requirements/* /tmp/requirements/ +RUN pip install --no-cache-dir --requirement /tmp/requirements/local.txt + +COPY manage.py manage.py +COPY config config +COPY apps apps + +CMD ["celery", "-A", "config", "worker", "-l", "info"] diff --git a/compose/dev/docker-compose.yml b/compose/dev/docker-compose.yml index e29d678..749effc 100644 --- a/compose/dev/docker-compose.yml +++ b/compose/dev/docker-compose.yml @@ -1,6 +1,19 @@ services: + fyp-redis: + image: redis:7-alpine + container_name: fyp-redis + ports: + - "0.0.0.0:6379:6379" + volumes: + - redis_data:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + web: build: context: ../.. @@ -24,5 +37,27 @@ services: volumes: - ../../:/app:cached - ../../build:/app/build + environment: + DJANGO_CELERY_BROKER_URL: redis://fyp-redis:6379/0 + DJANGO_SETTINGS_MODULE: config.settings + depends_on: + fyp-redis: + condition: service_healthy + celery: + build: + context: ../.. + dockerfile: compose/dev/celery/Dockerfile + command: celery -A config worker -l info + volumes: + - ../../:/app:cached + - ${USERPROFILE}/.cache/gpt4all:/root/.cache/gpt4all:ro + environment: + DJANGO_CELERY_BROKER_URL: redis://fyp-redis:6379/0 + DJANGO_SETTINGS_MODULE: config.settings + depends_on: + fyp-redis: + condition: service_healthy +volumes: + redis_data: diff --git a/compose/dev/node/Dockerfile b/compose/dev/node/Dockerfile index d40fc0a..0833b3a 100644 --- a/compose/dev/node/Dockerfile +++ b/compose/dev/node/Dockerfile @@ -2,8 +2,8 @@ FROM node:22-bullseye WORKDIR /app -COPY package.json package-lock.json ./ -RUN npm install +COPY package*.json ./ +RUN npm ci COPY src ./src COPY index.html . diff --git a/compose/dev/python/Dockerfile b/compose/dev/python/Dockerfile index 8f085ce..d19733c 100644 --- a/compose/dev/python/Dockerfile +++ b/compose/dev/python/Dockerfile @@ -12,7 +12,7 @@ COPY tsconfig.* . RUN npm run build -FROM python:3.14.0-bookworm as python +FROM python:3.12-bookworm as python RUN apt-get update && apt-get install --no-install-recommends -y \ build-essential \ @@ -25,7 +25,9 @@ RUN pip install --no-cache-dir --requirement local.txt WORKDIR /app -COPY . . +COPY manage.py manage.py +COPY config config +COPY apps apps COPY --from=node /app/build ./build diff --git a/compose/prod/start b/compose/prod/start index d08c8ce..9ab4b83 100644 --- a/compose/prod/start +++ b/compose/prod/start @@ -7,4 +7,4 @@ set -o nounset python manage.py makemigrations python manage.py migrate python manage.py collectstatic --noinput -exec /usr/local/bin/gunicorn config.wsgi --bind 0.0.0.0:8000 +exec /usr/local/bin/daphne -b 0.0.0.0 -p 8000 config.asgi:application