daqc's picture
Refactor docker-compose setup
d9fea7f
services:
app:
extends:
file: docker-compose.yml
service: app
depends_on:
argilla:
condition: service_healthy
required: false
environment:
- ARGILLA_API_URL=http://argilla:6900
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
environment:
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- node.name=elasticsearch
- cluster.name=es-argilla-local
- discovery.type=single-node
- cluster.routing.allocation.disk.threshold_enabled=false
- xpack.security.enabled=false
volumes:
- es_data:/usr/share/elasticsearch/data
networks:
- app-network
ports:
- "9200:9200"
- "9300:9300"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9200"]
interval: 30s
timeout: 10s
retries: 3
postgres:
image: postgres:14
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: argilla
networks:
- app-network
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis
networks:
- app-network
argilla:
image: argilla/argilla-server:latest
ports:
- "6900:6900"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:6900/api/ready"]
interval: 30s
timeout: 10s
retries: 3
env_file:
- .env
environment:
- ARGILLA_HOME_PATH=/var/lib/argilla
- ARGILLA_ELASTICSEARCH=http://elasticsearch:9200
- ARGILLA_DATABASE_URL=postgresql+asyncpg://postgres:postgres@postgres:5432/argilla
- ARGILLA_REDIS_URL=redis://redis:6379/0
- USERNAME=${ARGILLA_USERNAME}
- PASSWORD=${ARGILLA_PASSWORD}
- API_KEY=${ARGILLA_API_KEY}
- WORKSPACE=default
volumes:
- argilla_data:/argilla
networks:
- app-network
depends_on:
elasticsearch:
condition: service_healthy
postgres:
condition: service_started
redis:
condition: service_started
worker:
image: argilla/argilla-server:latest
env_file:
- .env
environment:
- ARGILLA_HOME_PATH=/var/lib/argilla
- ARGILLA_ELASTICSEARCH=http://elasticsearch:9200
- ARGILLA_DATABASE_URL=postgresql+asyncpg://postgres:postgres@postgres:5432/argilla
- ARGILLA_REDIS_URL=redis://redis:6379/0
- BACKGROUND_NUM_WORKERS=2
- USERNAME=${ARGILLA_USERNAME}
- PASSWORD=${ARGILLA_PASSWORD}
- API_KEY=${ARGILLA_API_KEY}
- WORKSPACE=default
networks:
- app-network
depends_on:
- postgres
- elasticsearch
- redis
command: sh -c 'python -m argilla_server worker --num-workers $${BACKGROUND_NUM_WORKERS}'
volumes:
es_data:
name: synthetic-data-es
argilla_data:
name: synthetic-data-argilla
postgres_data:
name: synthetic-data-postgres