docker-compose.yaml
Rama main · réplica de lectura del repositorio original.
services:
deltallm:
stop_grace_period: 90s
build:
context: .
dockerfile: Dockerfile
args:
INSTALL_PRESIDIO: ${INSTALL_PRESIDIO:-false}
profiles: ["single"]
ports:
- "4002:4000"
environment:
DELTALLM_CONFIG_PATH: /app/config/config.yaml
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
DELTALLM_OPENAI_API_KEY: ${DELTALLM_OPENAI_API_KEY:-}
DELTALLM_MASTER_KEY: ${DELTALLM_MASTER_KEY:-}
PLATFORM_BOOTSTRAP_ADMIN_EMAIL: ${PLATFORM_BOOTSTRAP_ADMIN_EMAIL:-}
PLATFORM_BOOTSTRAP_ADMIN_PASSWORD: ${PLATFORM_BOOTSTRAP_ADMIN_PASSWORD:-}
LAKERA_API_KEY: ${LAKERA_API_KEY:-}
DELTALLM_S3_BUCKET: ${DELTALLM_S3_BUCKET:-}
REDIS_PASSWORD: ${REDIS_PASSWORD:-}
DELTALLM_DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
DELTALLM_REDIS_URL: redis://redis:6379/0
REDIS_URL: redis://redis:6379/0
DELTALLM_SALT_KEY: ${DELTALLM_SALT_KEY:-}
volumes:
- ./config.yaml:/app/config/config.yaml:ro
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:4000/health/liveliness"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
deltallm-ha-1:
stop_grace_period: 90s
build:
context: .
dockerfile: Dockerfile
args:
INSTALL_PRESIDIO: ${INSTALL_PRESIDIO:-false}
profiles: ["ha"]
environment:
DELTALLM_CONFIG_PATH: /app/config/config.yaml
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
DELTALLM_OPENAI_API_KEY: ${DELTALLM_OPENAI_API_KEY:-}
DELTALLM_MASTER_KEY: ${DELTALLM_MASTER_KEY:-}
PLATFORM_BOOTSTRAP_ADMIN_EMAIL: ${PLATFORM_BOOTSTRAP_ADMIN_EMAIL:-}
PLATFORM_BOOTSTRAP_ADMIN_PASSWORD: ${PLATFORM_BOOTSTRAP_ADMIN_PASSWORD:-}
LAKERA_API_KEY: ${LAKERA_API_KEY:-}
DELTALLM_S3_BUCKET: ${DELTALLM_S3_BUCKET:-}
REDIS_PASSWORD: ${REDIS_PASSWORD:-}
DELTALLM_DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
DELTALLM_REDIS_URL: redis://redis:6379/0
REDIS_URL: redis://redis:6379/0
DELTALLM_SALT_KEY: ${DELTALLM_SALT_KEY:-}
INSTANCE_ID: instance-1
volumes:
- ./config.yaml:/app/config/config.yaml:ro
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
deltallm-ha-2:
stop_grace_period: 90s
build:
context: .
dockerfile: Dockerfile
args:
INSTALL_PRESIDIO: ${INSTALL_PRESIDIO:-false}
profiles: ["ha"]
environment:
DELTALLM_CONFIG_PATH: /app/config/config.yaml
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
DELTALLM_OPENAI_API_KEY: ${DELTALLM_OPENAI_API_KEY:-}
DELTALLM_MASTER_KEY: ${DELTALLM_MASTER_KEY:-}
PLATFORM_BOOTSTRAP_ADMIN_EMAIL: ${PLATFORM_BOOTSTRAP_ADMIN_EMAIL:-}
PLATFORM_BOOTSTRAP_ADMIN_PASSWORD: ${PLATFORM_BOOTSTRAP_ADMIN_PASSWORD:-}
LAKERA_API_KEY: ${LAKERA_API_KEY:-}
DELTALLM_S3_BUCKET: ${DELTALLM_S3_BUCKET:-}
REDIS_PASSWORD: ${REDIS_PASSWORD:-}
DELTALLM_DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
DELTALLM_REDIS_URL: redis://redis:6379/0
REDIS_URL: redis://redis:6379/0
DELTALLM_SALT_KEY: ${DELTALLM_SALT_KEY:-}
INSTANCE_ID: instance-2
volumes:
- ./config.yaml:/app/config/config.yaml:ro
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
nginx:
image: nginx:1.27-alpine
profiles: ["ha"]
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- deltallm-ha-1
- deltallm-ha-2
db:
image: postgres:15-alpine
ports:
# Local only: reachable from this machine, not from the network.
- "127.0.0.1:5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: deltallm
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 10
redis:
image: redis:7-alpine
ports:
- "127.0.0.1:6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
volumes:
postgres_data:
redis_data: