134 lines
3.8 KiB
YAML
134 lines
3.8 KiB
YAML
# Local / host-Postgres overlay. Restores the previous day-to-day workflow on top
|
|
# of the production docker-compose.yml:
|
|
#
|
|
# docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build
|
|
#
|
|
# - DB_HOST=host.docker.internal (host Postgres; container postgres still starts
|
|
# but is unused unless you flip DB_HOST back)
|
|
# - Publishes API / ATS / Redis / frontend ports for direct host access
|
|
# - Bind-mounts CV attachments to ./backend/inbox/decoded_attachments
|
|
# - Live source mounts + --reload on API / ATS / workers
|
|
#
|
|
# Frontend stays as the built nginx image — run `npm run dev` on the host for the
|
|
# Vite loop if you need HMR.
|
|
|
|
services:
|
|
redis:
|
|
ports:
|
|
- "${REDIS_PORT:-6379}:6379"
|
|
|
|
postgres:
|
|
ports:
|
|
- "127.0.0.1:${POSTGRES_PORT:-5433}:5432"
|
|
|
|
backend-api:
|
|
environment:
|
|
PYTHONPATH: /app
|
|
DB_HOST: host.docker.internal
|
|
REDIS_URL: redis://redis:6379/0
|
|
EMAIL_URL: ${EMAIL_URL:-http://host.docker.internal:5000}
|
|
BACKEND_URL: http://backend-api:8000
|
|
command:
|
|
[
|
|
"uvicorn",
|
|
"main:app",
|
|
"--host",
|
|
"0.0.0.0",
|
|
"--port",
|
|
"8000",
|
|
"--reload",
|
|
]
|
|
ports:
|
|
- "${BACKEND_PORT:-8000}:8000"
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./app:/app/app
|
|
- ${ATTACHMENTS_DIR:-./backend/inbox/decoded_attachments}:/app/inbox/decoded_attachments
|
|
|
|
ats-engine:
|
|
command:
|
|
[
|
|
"uvicorn",
|
|
"app.main:create_app",
|
|
"--factory",
|
|
"--host",
|
|
"0.0.0.0",
|
|
"--port",
|
|
"8100",
|
|
"--reload",
|
|
]
|
|
ports:
|
|
- "${ATS_PORT:-8100}:8100"
|
|
volumes:
|
|
- ./app:/srv/app
|
|
|
|
frontend:
|
|
ports:
|
|
- "${FRONTEND_PORT:-5173}:80"
|
|
|
|
taskiq-worker:
|
|
environment:
|
|
PYTHONPATH: /app
|
|
DB_HOST: host.docker.internal
|
|
REDIS_URL: redis://redis:6379/0
|
|
EMAIL_URL: ${EMAIL_URL:-http://host.docker.internal:5000}
|
|
BACKEND_URL: http://backend-api:8000
|
|
TASKIQ_QUEUE_NAME: inbox
|
|
TASKIQ_WORKER_NAME: worker-01
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./app:/app/app
|
|
- ${ATTACHMENTS_DIR:-./backend/inbox/decoded_attachments}:/app/inbox/decoded_attachments
|
|
|
|
taskiq-scheduler:
|
|
environment:
|
|
PYTHONPATH: /app
|
|
DB_HOST: host.docker.internal
|
|
REDIS_URL: redis://redis:6379/0
|
|
EMAIL_URL: ${EMAIL_URL:-http://host.docker.internal:5000}
|
|
BACKEND_URL: http://backend-api:8000
|
|
TASKIQ_QUEUE_NAME: inbox
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./app:/app/app
|
|
|
|
taskiq-cv-worker:
|
|
environment:
|
|
PYTHONPATH: /app
|
|
DB_HOST: host.docker.internal
|
|
REDIS_URL: redis://redis:6379/0
|
|
EMAIL_URL: ${EMAIL_URL:-http://host.docker.internal:5000}
|
|
BACKEND_URL: http://backend-api:8000
|
|
TASKIQ_CV_QUEUE_NAME: cv_upload
|
|
TASKIQ_WORKER_NAME: cv-worker-01
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./app:/app/app
|
|
- ${ATTACHMENTS_DIR:-./backend/inbox/decoded_attachments}:/app/inbox/decoded_attachments
|
|
|
|
taskiq-cv-scheduler:
|
|
environment:
|
|
PYTHONPATH: /app
|
|
DB_HOST: host.docker.internal
|
|
REDIS_URL: redis://redis:6379/0
|
|
EMAIL_URL: ${EMAIL_URL:-http://host.docker.internal:5000}
|
|
BACKEND_URL: http://backend-api:8000
|
|
TASKIQ_CV_QUEUE_NAME: cv_upload
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./app:/app/app
|
|
|
|
taskiq-mailbox-sync-worker:
|
|
environment:
|
|
PYTHONPATH: /app
|
|
DB_HOST: host.docker.internal
|
|
REDIS_URL: redis://redis:6379/0
|
|
EMAIL_URL: ${EMAIL_URL:-http://host.docker.internal:5000}
|
|
BACKEND_URL: http://backend-api:8000
|
|
TASKIQ_MAILBOX_SYNC_QUEUE_NAME: mailbox_sync
|
|
TASKIQ_WORKER_NAME: mailbox-sync-worker-01
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./app:/app/app
|
|
- ${ATTACHMENTS_DIR:-./backend/inbox/decoded_attachments}:/app/inbox/decoded_attachments
|