Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Docker(Docker Compose)から DynamoDB Local を使う際にデータを永続化する

More than 1 year has passed since last update.

2018/11/15 更新

DynamoDB Local を実行するユーザにディレクトリへの書き込み権限が無いと正しく動かなったので修正。


2018年8月ごろ?(うろ覚え)にDynamoDB Local の公式 Docker イメージが利用できるようになった。

しかし、デフォルトでは -inMemory オプションで起動されるため、コンテナを落とすとテーブル定義を含むデータがすべて消えてしまう。

代わりに -dbPath オプションを指定して起動させることで、コンテナを落としてもデータを失わずに済む。

docker-compose.yml(一例)
version: "3"

services:
  dynamodb:
    build: ./dynamodb
    volumes:
      - dynamodb_data:/home/dynamodblocal/data
    ports:
      - 8000:8000
    command: -jar DynamoDBLocal.jar -dbPath ./data

volumes:
  dynamodb_data:

dynamodb/Dockerfile
FROM amazon/dynamodb-local

WORKDIR /home/dynamodblocal

# UID=1000 → DynamoDB Local の実行ユーザ
RUN mkdir data && chown -R 1000 data

参考

willgate
ウィルゲートが理想とする社会は、一人ひとりが自身の『will(意志、想い、やりたいこと)』を実現できる社会です。
https://willgate.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away