Docker-compose#
This guide explains how to run the Argilla server with Elasticsearch using docker-compose
.
Launching Argilla and Elasticsearch with docker-compose
#
For this method, you first need to install Docker Compose.
Then, create a folder:
mkdir argilla && cd argilla
and launch the docker-contained web app with the following command, after having set a value for the environment variable ARGILLA_AUTH_SECRET_KEY
, which can be generated with openssl rand -hex 32
:
wget -O docker-compose.yaml https://raw.githubusercontent.com/argilla-io/argilla/main/docker/docker-compose.yaml && docker-compose up -d
Warning
The latest versions of docker should be executed without the dash โ-โ, e.g.:
docker compose up -d
This is a convenient way because it automatically includes an Elasticsearch instance, Argillaโs main persistent layer.
Warning
Keep in mind that if you execute
docker-compose down
you will lose all your datasets in Argilla!
Tip
Instead, execute
docker-compose stop
Note
By default, telemetry is enabled. This helps us to improve our product. For more info about the metrics and disabling them check telemetry.
Persisting ElasticSearch data#
To avoid losing all the data when the docker-compose/server goes down, you can add some persistence by mounting a volume in the docker-compose.
To this end, modify the elasticsearch service and create a new volume in the docker-compose.yaml
file:
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.5.3
container_name: elasticsearch
environment:
- node.name=elasticsearch
- cluster.name=es-argilla-local
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
networks:
- argilla
# Add the volume to the elasticsearch service
volumes:
- elasticdata:/usr/share/elasticsearch/data
argilla:
# ... here goes the rest of the docker-compose.yaml
# ...
# At the end of the file create a volume for ElasticSearch
volumes:
elasticdata:
Then, even if the ElasticSearch service goes down the data will be persisted in the elasticdata volume. To check it you can execute the command:
docker volume ls
Note that if you want to apply these changes, and you already have a previous docker-compose instance running, you need to execute the up command again:
docker-compose up -d