问题描述
根据docs,有2个标志会影响dynamodb-local的运行
-inMemory
->使所有数据仅在服务终止时才保留在RAM中-所有数据都将被删除
不切换->每个凭据登录将数据保留在不同的文件中-这是默认行为
但是,如果您查看docker.hub,则会看到在docker中运行dynamodb-local时的默认行为是带有-inMemory
标志。但我不想要它,而是想要真正的默认行为。
如何覆盖它?
解决方法
好吧,很难找到它,但这是一个非常简单的解决方案。
根据此great post,我们可以轻松地覆盖docker pull image的[CMD]
部分。
我们只需要在docker运行后添加args。这是我使用的命令:
docker run -p 8000:8000 --name local-dynamodb amazon/dynamodb-local -jar DynamoDBLocal.jar
-p
用于定义要公开的端口,因此您的应用程序可以在端口8000上与dynamodb-local联系
--name
用于为图像赋予可读的名称
amazon/dynamodb-local
之后的所有内容都是最重要的部分,预定义的入口点是JAVA
,因此我们只需要添加-jar
开关,指定要运行的文件名,并忽略该邪恶-inMemory
开关
祝你好运!和快乐编码