Hi, I’m interested in using circleCI to run acceptance tests on an python based ETL pipeline. The acceptance tests run a subset of the ETL, which stores the data in a Neo4J data warehouse, and then the tests make assertions about what data is where in the data warehouse using cypher, the sql of graph databases.
Unfortunately Neo4J does not expose python bindings for an impermanent in-memory graph database for our test suite to run for its purposes. We already use docker containers (and docker compose) for development and deployment in our entire application stack, and have been starting towards adding to that stack a test database container for the purposes of the test suite to connect to, and then blast clean, during its tests.
I was reading through the docs at https://circleci.com/docs/docker to get some insight on running an application stack with docker containers on circle CI for testing purposes. The docs talk about testing individual containers from an image build, or how to run a test suite inside a container, or how to connect to external services from inside a container, but not about how or whether it is possible to run a multi-container setup on a circleCI server. Is this possible? Does circleCI provide support for docker-compose, and/or supporting multicple containers with several pre-execute docker run commands?
Are there any gotchas/has anyone else done this before?