Add setup for DynamoDB.

pull/12/head dynamo
Alex MacArthur 3 years ago
parent 5fa52ebed8
commit c9a2057ac0

1
.gitignore vendored

@ -1 +1,2 @@
docker-compose.override.yml
.env

@ -1,24 +1,24 @@
# Local Docker DB
## What?
A collection of Docker Compose files I've used to quickly spin up local databases of various sorts.
A collection of Docker Compose files I've used to quickly spin local databases of various sorts.
# Included Databases
## Why?
Database | Docker Compose Configuration | Website
---------- | ---------------------------- | ----------------------------------
DynamoDB | [./dynamo](./dynamo/) | <https://aws.amazon.com/dynamodb/>
Fauna | [./fauna](./fauna/) | <https://fauna.com/>
MariaDB | [./maria](./maria/) | <https://mariadb.org/>
MongoDB | [./mongo](./mongo/) | <https://www.mongodb.com/>
MySQL | [./mysql](./mysql/) | <https://www.mysql.com/>
PostgreSQL | [./postgres](./postgres/) | <https://www.postgresql.org/>
Redis | [./redis](./redis/) | <https://redis.io/>
Because I've oft needed them, particularly when I just don't wanna deal with the hassle of spinning up a DB on my own system.
## Usage
## How?
Clone the repo or copy a `docker-compose.yml` file to your system, `cd` into that directory, and turn it on with `docker-compose up` (unless otherwise noted by the directory's `README.md`). You may also use a `docker-compose.override.yml` file inside this repository to customize a container.
Clone the repo or copy a `docker-compose.yml` file to your system, `cd` into that directory, and turn it on with `docker-compose up`. You may also use a `docker-compose.override.yml` file inside this repository to customize a container. For a full reference on how to use Docker Compose, [go here](https://docs.docker.com/compose/reference/).
## Explore a Container w/ Bash
In any given container, run the following. Most of the time, the service name will just be `db`, but there may be an exception or two.
```
docker-compose exec --user root SERVICE_NAME /bin/bash
```
For a full reference on how to use Docker Compose, [go here](https://docs.docker.com/compose/reference/).
## Local Persistence

@ -0,0 +1,3 @@
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=

@ -0,0 +1,21 @@
# DyanmoDB w/ Docker Compose
## Starting the Container
Run `docker-compose up db` to turn on the DynamoDB container. After starting, the DB instance will be running at `http://localhost:8000`.
## Accessing the DB w/ the AWS CLI
Run `cp .env-sample .env` to create a new `.env` file, and fill the variables with your AWS credentials.
In order to run `aws` CLI commands against the locally-running DyanmoDB instance, use `docker-compose run aws SOME_AWS_COMMAND`. For example, referencing the DyanmoDB [developer guide](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html), you could create a table by running the following:
```bash
docker-compose run aws dynamodb create-table --table-name Music --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5
```
And then list all tables by running this:
```bash
docker-compose run aws dynamodb list-tables
```

@ -0,0 +1,21 @@
version: '3'
services:
db:
command: -jar DynamoDBLocal.jar -sharedDb -dbPath ./data
image: amazon/dynamodb-local:latest
ports:
- 8000:8000
volumes:
- dbdata:/home/dynamodblocal
aws:
depends_on:
- db
image: banst/awscli
ports:
- 8080:8080
env_file:
- .env
volumes:
dbdata:
Loading…
Cancel
Save