我是localstack新手,我复制了docker-compose示例。我确保将数据路径挂载到我的机器中,并且我确实在host tmp文件夹中看到了它。此外,我在调用s3 write命令时看到了数据被追加,但在我杀死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"
运行示例:
aws --endpoint-url=http://localhost:4566 s3 mb s3://bucket-test
aws --endpoint-url=http://localhost:4566 s3 cp myfile.png s3://bucket-test
#Now this command will return the file
aws --endpoint-url=http://localhost:4566 s3 ls s3://bucket-test
# But after I will kill the docker and run docker-compose up again I will see nothing
2条答案
按热度按时间70gysomp1#
您的数据将通过运行
docker-compose down
删除。这将停止并删除您的容器:https://docs.docker.com/compose/reference/down/要停止容器而不删除卷,请运行:
docker-compose stop
通过添加**“DATA_DIR”**和以下卷,我可以保留与ssm参数相关的数据:
我的docker-compose.yml文件看起来像:
t1rydlwq2#
正如localstack文档(see "Deprecated" section)中提到的,
DATA_DIR
已经被弃用。他们要求您在描述中使用PERSISTANCE=1
,它将把状态存储在/var/lib/localstack/state
目录中。然而,
PERSITANCE=1
并不等同于DATA_DIR
。在此弃用之后,这现在是Localstack Pro下的一个付费功能。您现在必须使用
S3_DIR
来指定您的本地S3目录,只有当您使用LOCALSTACK_API_KEY
指定Localstack Pro API密钥时,它才起作用。