首页 > 解决方案 > 如何在没有 -inMemory 标志的 Docker 中运行 dynamodb-local

问题描述

根据文档,有 2 个标志会影响 dynamodb-local 的运行

-inMemory-> 使所有数据仅保留在 RAM 中,当服务终止时 - 所有数据都被删除

-sharedDB-> 将所有登录信息写入同一个共享文件

没有开关 -> 每个凭据登录都会将数据保存在不同的文件中 - 这是默认行为

但是,如果您查看docker.hub,您会发现在 docker 中运行 dynamodb-local 时的默认行为是带有-inMemory标志。但我不想要它,我想要真正的默认行为。我怎样才能覆盖它?

标签: dockeramazon-dynamodbamazon-dynamodb-local

解决方案


嗯,很难找到它,但这是一个非常简单的解决方案。

根据这篇很棒的帖子,我们可以轻松地覆盖[CMD]docker pull image 的部分。

我们只需要在 docker run 之后添加 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开关

祝大家好运!和快乐编码


推荐阅读