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