This project creates a simple CockroachDB Docker image that is ideal for use in CI/CD pipelines or other functional tests. The Dockerfile extends the latest CockroachDB image, automatically starts a single node, and can automatically create a database if the environment variable DATABASE_NAME is provided. If the environment variable MEMORY_SIZE is provided, CockroachDB will be started with an in-memory store with the given size. The image is hosted on DockerHub and can be found here.
This project is especially useful when attempting to use CockroachDB as a Service Container inside GitHub Actions. Below is a snippet from a GitHub action yml file. Notice the cockroach service defined as part of the cockroachdb job. The DATABASE_NAME is provided as an env value.
# stuff happens above this...
cockroachdb:
runs-on: ubuntu-latest
services:
cockroach: # https://hub.docker.com/repository/docker/timveil/cockroachdb-single-node
image: timveil/cockroachdb-single-node:latest
env:
DATABASE_NAME: benchbase
ports:
- 26257:26257
steps:
- name: Checkout repo.
uses: actions/checkout@v2
- name: Setup JDK 11.
uses: actions/setup-java@v1
with:
java-version: 11
- name: Build with Maven.
run: mvn -B package --file pom.xml
# stuff happens below this...docker build --no-cache -t timveil/cockroachdb-single-node:latest .docker push timveil/cockroachdb-single-node:latestdocker run -d -it -p 8080:8080 -p 26257:26257 -e "DATABASE_NAME=test" -e "MEMORY_SIZE=.5" timveil/cockroachdb-single-node:latest