前提条件
api-modeで利用しているので、front周りを触るなら、他の記事を参考に変更する必要があるかもしれない
docker-compose.yml
version: '3.3'
services:
jets:
stdin_open: true
build: .
volumes:
- .:/usr/src/app
- volume-config:/usr/src/app/.bundle
- volume-gem:/usr/local/bundle
# deploy時にここをキャッシュしておくと早い
- volume-tmp-jets:/tmp/jets
ports:
- "8888:8888"
command: ["jets", "server", "--host", "0.0.0.0"]
environment:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
depends_on:
- dynamodblocal
dynamodblocal:
build: ./containers/dynamodb
volumes:
- volume-dynamodb_data:/home/dynamodblocal/data
command: ["-jar", "DynamoDBLocal.jar", "-dbPath", "./data", "-port", "8002"]
ports:
- "8000:8002"
dynamodbadmin:
image: instructure/dynamo-local-admin
ports:
- 8001:8001
environment:
DYNAMO_ENDPOINT: http://dynamodblocal:8002
# jetsで利用しているkeyと同じにしないと閲覧できない
AWS_REGION: ${AWS_REGION}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
depends_on:
- dynamodblocal
volumes:
volume-gem:
driver: 'local'
volume-config:
driver: 'local'
volume-tmp-jets:
driver: 'local'
volume-dynamodb_data:
driver: 'local'
ハマりどころ
- jetsで利用しているdynomite(ORM的なもの)がdynamodbのendpointにport:8000が設定されていると、ローカル起動とみなし、チェックをするようになっている(127.0.0.0:8000で利用してないとローカル起動チェックでコケる)
- そこで、dynamodb-localの-portオプションで、8000以外で起動することで回避する
- 2019/04/29 現在の状況
- dynamodb-adminでREADMEの通りに起動しても、jetsから作成したtableが閲覧できない
- AWSのクレデンシャル情報は適当で入れても、dynamodb-adminは大丈夫だったけれど、jetsの方で、フォーマットが正しくないと怒られたので、本番で利用している(deployで利用)ものをそのまま環境変数で渡して利用している
参考URL
dynamodb-admin/backend.js at f909e48446eadd9401878dd4095cb260f3f4c1e3 · aaronshaf/dynamodb-admin
dynomite/db_config.rb at e58476c3f794a7e0926b2707eb480ce5b793cb9d · tongueroo/dynomite
Docker(Docker Compose)から DynamoDB Local を使う際にデータを永続化する - Qiita
【dynamodb】ローカル環境のデータをGUIで確認するまで - Qiita