6
2

More than 5 years have passed since last update.

jetsの開発環境をdocker-composeを利用して、dynamodb(dynamodb-local, dynamodb-admin)も使いたい

Last updated at Posted at 2019-04-29

前提条件

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

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2