mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-23 04:21:52 +00:00
a2ab216531
* chore(Celery): add basic Celery worker with broker only * chore(Celery): saving progress. Not able to schedule tasks * fix(Celery): add celery app for use by django * fix(Celery): register tasks * fix(Docker): add celery workers to docker-compose * chore(Celery): add django-celery-results backend to store results using Django ORM * fix(Celery): get app config the correct way * fix(Docker): start connecting docker Celery workers to Valkey not yet operational * fix(Celery): get celery & django to work in docker-compose * docs(Celery): document how to run Celery in development environment includes changes to support the configuration and deployment of Celery worker and its dependencies, Valkey and Postgres. * fix(GHA): add valkey to CI services * fix(GHA): add valkey to CI services * fix(GHA): add valkey-cli ping to CI services * fix(GHA): use right port for valkey * fix(Views): remove debug task code * test(Celery): start adding celery task tests not yet working! * fix(pyproject): rollback django upgrade * fix(docker): updated docker runtime and env vars based on feedback from #20 * fix(Dockerfile): include dependencies for psutil psutil was introduced by pytest-celery * fix(Backend): PRWLR-4013 fix celery settings structure * fix(Celery): update celery app to work with new settings structure * fix(Views): remove debug task code * fix(Config): remove debug code * fix(Celery): update celery app name when running worker --------- Co-authored-by: Víctor Fernández Poyatos <victor@prowler.com>
103 lines
2.3 KiB
YAML
103 lines
2.3 KiB
YAML
services:
|
|
api:
|
|
build:
|
|
dockerfile: Dockerfile
|
|
image: prowler-api
|
|
env_file:
|
|
- path: ./.env
|
|
required: false
|
|
ports:
|
|
- "${DJANGO_PORT:-8000}:${DJANGO_PORT:-8000}"
|
|
profiles:
|
|
- prod
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
valkey:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "../docker-entrypoint.sh"
|
|
- "prod"
|
|
|
|
api-dev:
|
|
build:
|
|
dockerfile: Dockerfile
|
|
target: dev
|
|
image: prowler-api-dev
|
|
environment:
|
|
- DJANGO_SETTINGS_MODULE=config.django.devel
|
|
- DJANGO_LOGGING_FORMATTER=human_readable
|
|
env_file:
|
|
- path: ./.env
|
|
required: false
|
|
ports:
|
|
- "${DJANGO_PORT:-8080}:${DJANGO_PORT:-8080}"
|
|
volumes:
|
|
- "./src/backend:/home/prowler/backend"
|
|
- "./pyproject.toml:/home/prowler/pyproject.toml"
|
|
profiles:
|
|
- dev
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
valkey:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "../docker-entrypoint.sh"
|
|
- "dev"
|
|
|
|
postgres:
|
|
image: postgres:16.3-alpine
|
|
ports:
|
|
- "${POSTGRES_PORT:-5432}:${POSTGRES_PORT:-5432}"
|
|
hostname: "postgres-db"
|
|
volumes:
|
|
- ./_data/postgres:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_ADMIN_USER:-prowler}
|
|
- POSTGRES_PASSWORD=${POSTGRES_ADMIN_PASSWORD:-S3cret}
|
|
- POSTGRES_DB=${POSTGRES_DB:-prowler_db}
|
|
env_file:
|
|
- path: ./.env
|
|
required: false
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "sh -c 'pg_isready -U ${POSTGRES_ADMIN_USER:-prowler} -d ${POSTGRES_DB:-prowler_db}'"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
valkey:
|
|
image: valkey/valkey:7-alpine3.19
|
|
ports:
|
|
- "${VALKEY_PORT:-6379}:6379"
|
|
hostname: "valkey"
|
|
volumes:
|
|
- ./_data/valkey:/data
|
|
env_file:
|
|
- path: ./.env
|
|
required: false
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "sh -c 'valkey-cli ping'"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
worker:
|
|
build:
|
|
dockerfile: Dockerfile
|
|
image: prowler-worker
|
|
env_file:
|
|
- path: ./.env
|
|
required: false
|
|
profiles:
|
|
- dev
|
|
- prod
|
|
depends_on:
|
|
valkey:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
entrypoint:
|
|
- "../docker-entrypoint.sh"
|
|
- "worker"
|