Files
Aether/docker-compose.yml
2026-05-13 21:43:52 +03:00

154 lines
3.2 KiB
YAML

services:
database:
image: postgres:latest
environment:
- POSTGRES_PASSWORD=${DB_PASS}
- POSTGRES_USER=${DB_USER}
- POSTGRES_DB=${DB_NAME}
ports:
- "5432:5432"
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}" ]
interval: 5s
timeout: 10s
retries: 5
networks:
- aether
volumes:
- db-data:/var/lib/postgresql
restart: unless-stopped
rabbitmq:
image: rabbitmq:3.8-management
environment:
RABBITMQ_DEFAULT_USER: "${RMQ_USER}"
RABBITMQ_DEFAULT_PASS: "${RMQ_PASS}"
ports:
- "5672:5672"
- "15672:15672"
networks:
- aether
volumes:
- rabbitmq-data:/var/lib/rabbitmq
restart: unless-stopped
redis:
image: redis:latest
ports:
- "6379:6379"
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 5s
retries: 5
networks:
- aether
volumes:
- redis-data:/data
restart: unless-stopped
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: "${S3_ACCESS_KEY_ID}"
MINIO_ROOT_PASSWORD: "${S3_SECRET_ACCESS_KEY}"
ports:
- "9000:9000"
- "9001:9001"
networks:
- aether
volumes:
- minio-data:/data
restart: unless-stopped
minio-init:
image: minio/mc:latest
depends_on:
- minio
networks:
- aether
environment:
S3_ACCESS_KEY_ID: "${S3_ACCESS_KEY_ID}"
S3_SECRET_ACCESS_KEY: "${S3_SECRET_ACCESS_KEY}"
S3_BUCKET_NAME: "${S3_BUCKET_NAME}"
entrypoint: >
/bin/sh -c "
mc alias set minio http://minio:9000 $${S3_ACCESS_KEY_ID} $${S3_SECRET_ACCESS_KEY} &&
mc mb -p minio/$${S3_BUCKET_NAME} || true &&
mc anonymous set download minio/$${S3_BUCKET_NAME} || true
"
restart: "no"
prestart:
build:
context: ./backend
command: bash scripts/prestart.sh
depends_on:
database:
condition: service_healthy
networks:
- aether
env_file:
- .env
celery:
build:
context: ./backend
command: celery -A app.core.celery_app.celery_app worker -l INFO
depends_on:
database:
condition: service_healthy
prestart:
condition: service_completed_successfully
networks:
- aether
env_file:
- .env
environment:
S3_URL: "http://minio:9000"
restart: unless-stopped
backend:
build:
context: ./backend
depends_on:
database:
condition: service_healthy
prestart:
condition: service_completed_successfully
celery:
condition: service_started
redis:
condition: service_healthy
ports:
- "3541:${BACKEND_PORT}"
networks:
- aether
env_file:
- .env
environment:
S3_URL: "http://minio:9000"
restart: unless-stopped
frontend:
build:
context: ./frontend
args:
VITE_API_URL: ${VITE_API_URL}
depends_on:
backend:
condition: service_started
ports:
- "${FRONTEND_PORT}:3000"
networks:
- aether
restart: unless-stopped
volumes:
db-data:
rabbitmq-data:
redis-data:
minio-data:
networks:
aether: