🔧 chore(deploy): update docker-compose.override.yml to version 3.8
📦 chore(docker-compose.with_tests.yml): add docker-compose file with tests configuration
This commit adds a new docker-compose file named `docker-compose.with_tests.yml` which includes the configuration for running tests. The file includes the following services:
- `proxy`: Configures Traefik as a reverse proxy with Docker integration and enables access logs, the Traefik dashboard, and API.
- `backend`: Sets up the backend service with dependencies on a database, message broker, and result backend. It also includes labels for Traefik routing.
- `db`: Configures a PostgreSQL database with a volume for data persistence.
- `pgadmin`: Sets up pgAdmin for managing the PostgreSQL database.
- `result_backend`: Configures a Redis instance for the result backend.
- `celeryworker`: Sets up a Celery worker for background task processing.
- `flower`: Configures Flower for monitoring and managing Celery workers.
- `frontend`: Sets up the frontend service with labels for Traefik routing.
- `broker`: Configures RabbitMQ with the management console.
- `prometheus`: Sets up Prometheus for monitoring.
- `grafana`: Configures Grafana for visualization and monitoring.
- `tests`: Extends the `backend` service and runs pytest for running tests.
This file allows running the application with the necessary services for testing and monitoring.
🔧 chore(docker-compose.yml): add missing volumes and networks for services
🔧 chore(docker-compose.yml): add traefik-public network with configurable external setting for flexibility in testing
📝 docs(async-tasks.mdx): update docker-compose command to use the correct file name for running tests
✨ feat(docker-compose.override.yml): add configuration for the celeryworker service to enable Traefik routing and expose port 7860 for API endpoints
🐛 fix(docker-compose.yml): remove parallel test execution flag from the command for the test service
🐳 chore(deploy): update traefik image version to v3.0 for improved functionality and compatibility
🔧 chore(deploy): remove unnecessary port mappings for backend, queue, pgadmin, redis, prometheus, and grafana services
This commit adds a new file `docker-compose.override.yml` to the `deploy` directory. The file contains configuration for the Traefik proxy and services used for local development. The configuration includes:
- Enabling Docker in Traefik to read labels from Docker services
- Adding a constraint to only use services with a specific label for this stack
- Disabling the exposure of all Docker services by default
- Enabling the access log and Traefik log
- Enabling the Traefik Dashboard and API in insecure mode for local development
The file also includes configuration for the following services:
- `proxy`: Configured to listen on ports 80 and 8090, with labels for routing and load balancing
- `pgadmin`: Configured to listen on port 5050
- `flower`: Configured to listen on port 5555
- `backend`: Configured with labels for routing and load balancing on paths `/api/v1`, `/docs`, and `/health`
- `frontend`: Configured with labels for routing and load balancing on the root path
The `traefik-public` network is also defined for use by the Traefik proxy.
This file is intended to be used as an override for the main `docker-compose.yml` file during local development.
🐳 chore(docker-compose.yml): add Traefik reverse proxy configuration for services
🔧 fix(docker-compose.yml): fix path to startup-backend.sh script
🚀 feat(docker-compose.yml): add support for deploying backend, celery worker, flower, frontend, prometheus, and grafana services
🔧 fix(docker-compose.yml): fix volume configuration for db service
🔧 fix(docker-compose.yml): fix network configuration for pgadmin service
🔧 fix(docker-compose.yml): fix network configuration for traefik proxy service
🔧 fix(docker-compose.yml): fix network configuration for flower service
🔧 fix(docker-compose.yml): fix network configuration for frontend service
🔧 fix(docker-compose.yml): fix network configuration for prometheus service
🔧 fix(docker-compose.yml): fix network configuration for grafana service