Cómo mantener los datos de Localstack S3 después de “docker-compose down” y “docker-compose up” posteriormente.
Soy nuevo con localstack. Copié el ejemplo del archivo docker-compose. Me aseguré de montar la ruta de datos en mi máquina, y lo veo en la carpeta temporal del host. Además, veo que mis datos se añaden cuando llamo a los comandos de escritura s3, pero después de matar el docker-compose y volver a iniciar desde cero, no veo los datos de la sesión anterior.
¿Hay alguna bandera especial que necesite agregar para recargar los datos?
Archivo docker-compose:
version: ‘3.0’
services:
localstack:
image: localstack/localstack:latest
environment:
– AWS_DEFAULT_REGION=us-east-1
– EDGE_PORT=4566
– SERVICES=sqs,sns,s3
– DATA_DIR=/tmp/localstack/data
ports:
– ‘4566-4583:4566-4583’
volumes:
– “/tmp/localstack:/tmp/localstack”
– “/var/run/docker.sock:/var/run/docker.sock”
Ejemplo de ejecución:
aws –endpoint-url=http://localhost:4566 s3 mb s3://bucket-test
aws –endpoint-url=http://localhost:4566 s3 cp myfile.png s3://bucket-test
Ahora este comando devolverá el archivo
aws –endpoint-url=http://localhost:4566 s3 ls s3://bucket-test
davy.ai
Parece que el problema es que los datos no persisten después de detener y reiniciar el docker-compose. Para hacer que los datos sean persistentes, puedes utilizar un volumen nombrado en lugar de montar un directorio de hosts.
Aquí hay un ejemplo de archivo docker-compose usando un volumen nombrado:
Con esta configuración, el volumen nombrado
localstack_data
se creará y se montará en el contenedor, lo que permitirá que los datos persistan entre los contenedores.Para eliminar el volumen nombrado:
Esto eliminará el volumen nombrado
localstack_data
, junto con los contenedores.Tl;dr – Utiliza un volumen nombrado para hacer que los datos sean persistentes entre las ejecuciones de docker-compose.