In development I use DGraph with docker-compose
as per your docs. I have a dev and test setup, its been working great.
I am currently struggling to setup a CI CD pipeline in Bitbucket. The suggested solution for Bitbucket, for other databases is to define services which are themselves docker images.
See docs here:
It does not appear that you can call commands on the docker images you define as services. (docs are a bit light).
In this scenario however each docker image just runs and exposes a single database automagically. As Dgraph requires multiple docker images to setup I cannot just use the dgraph/dgraph image.
I have been looking into trying to run docker in docker with compose, and creating my own single dgraph image (and failing). Ideally I would use my local test compose file as any base for my CI CD integration tests to keep them in sync. Docker in Docker does however seem to be discouraged Using Docker-in-Docker for your CI or testing environment? Think twice.
I am a bit lost as to how to get this sorted, and the best approach, any help would be appreciated. I figured I should reach out here as I assume you guys have some CI CD setup happening. Maybe you would be open to having an official single docker image for this purpose that just loads Dgraph (Zero and Ratel) on an exposed port with no config.
My test file for docker compose for reference.
version: "3.2"
services:
zero-test:
image: dgraph/dgraph:v1.0.3
volumes:
- type: volume
source: dgraph-test
target: /dgraph-test
volume:
nocopy: true
ports:
- 6081:6081
- 5081:5081
restart: on-failure
command: dgraph zero --port_offset 1 --my=zero-test:5081
server-test:
image: dgraph/dgraph:v1.0.3
volumes:
- type: volume
source: dgraph-test
target: /dgraph-test
volume:
nocopy: true
ports:
- 8081:8081
- 9081:9081
restart: on-failure
command: dgraph server --my=server-test:7081 --memory_mb=2048 --zero=zero-test:5081 -o 1
volumes:
dgraph-test: