services:
argilla:
image: argilla/argilla-server:latest
container_name: argilla
restart: unless-stopped
ports:
- "6900:6900"
environment:
- ARGILLA_DATABASE_URL=postgresql+asyncpg://postgres:changeme@argilla-db:5432/argilla
- ARGILLA_ELASTICSEARCH=http://argilla-es:9200
- ARGILLA_AUTH_SECRET_KEY=changeme
depends_on:
argilla-db:
condition: service_healthy
argilla-es:
condition: service_healthy
argilla-db:
image: postgres:17-alpine
container_name: argilla-db
restart: unless-stopped
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=changeme
- POSTGRES_DB=argilla
volumes:
- argilla_db_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 3s
timeout: 3s
retries: 10
argilla-es:
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2
container_name: argilla-es
restart: unless-stopped
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- ES_JAVA_OPTS=-Xms512m -Xmx512m
volumes:
- argilla_es_data:/usr/share/elasticsearch/data
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"]
interval: 10s
timeout: 5s
retries: 10
volumes:
argilla_db_data:
argilla_es_data: