When you use DynamoDB and you have good codebase test coverage, chances are that you tend to use a lot local DynamoDB.
Docker comes really in handy in order to distribute a pre-configured local dynamo db among your dev teams or your Continuous integration server.
I will use a Centos image.
We will need Java.
I prefer the oracle jdk therefore I have to accept the license and download locally the java rpm.
In case you want open jdk you can just install it through yum
So we create the Dockerfile.
I will use the default port which is 8000 so I will expose port 8000.
jdk-8u91-linux-x64.rpm is the oracle java I downloaded previously.
FROM centos ADD jdk-8u91-linux-x64.rpm / RUN rpm -Uvh jdk-8u91-linux-x64.rpm RUN rm /jdk-8u91-linux-x64.rpm RUN mkdir /opt/DynamoDB RUN curl -O -L http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz RUN mv dynamodb_local_latest.tar.gz /opt/DynamoDB/ RUN cd /opt/DynamoDB && tar xvf dynamodb_local_latest.tar.gz && rm dynamodb_local_latest.tar.gz EXPOSE 8000 ENTRYPOINT ["java","-Djava.library.path=/opt/DynamoDB/DynamoDBLocal_lib","-jar","/opt/DynamoDB/DynamoDBLocal.jar","-sharedDb"]
Then we build our image
docker build -t dynamodb .
No we run the container on the background
docker run -p 8000:8000 -d dynamodb
Got error on building. I think it is outdated. Error code below:
$ docker build -t dynamodb .
[+] Building 12.2s (7/13)
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 595B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/centos:latest 11.7s
=> [auth] library/centos:pull token for registry-1.docker.io 0.0s
=> [internal] load build context 0.2s
=> => transferring context: 2B 0.1s
=> CANCELED [1/8] FROM docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 0.2s
=> => resolve docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 0.0s
=> => sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 762B / 762B 0.0s
=> => sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc 529B / 529B 0.0s
=> => sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6 2.14kB / 2.14kB 0.0s
=> => sha256:a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1d1 0B / 83.52MB 0.1s
=> ERROR [2/8] ADD jdk-8u91-linux-x64.rpm / 0.0s
——
> [2/8] ADD jdk-8u91-linux-x64.rpm /:
——
failed to compute cache key: “/jdk-8u91-linux-x64.rpm” not found: not found