Skip to main content

Make and Docker Integration

Developers familiar with Docker and docker-compose might be surprised to find that the docker-compose.yaml file at the root of the repo is programmatically generated and updated by the make build tasks.

Each service contains its own docker-compose.yaml details:

  • ui/docker-compose.yaml
  • api/docker-compose.yaml
  • dmc/docker-compose.yaml
  • tasks/docker-compose.yaml
  • workers/docker-compose.yaml
  • testmos/docker-compose.yaml
  • terminal/docker-compose.yaml

Additionally, an overrides file contains any changes modified for local development or production: docker-compose.build-override.yaml

The make task docker-compose.yaml stitches together the envfile and the above */docker-compose* files into the final docker-compose.yaml file.

The docker-compose file is regenerated under certain conditions, which can be understood by examining the Makefile. Alternatively, you can manually run make docker-compose.yaml to regenerate it by hand. Docker-compose regeneration is usually only relevant in specific situations, such as when:

  • Modifying the envfile values
  • Modifying /docker-compose files as part of a service while developing a new feature
  • Customizing environment values for production deployment, or in other specific scenarios