We use Gitlab CI to run data projects on scheduled intervals. To this end, we need both a Dockerfile specifying the container itself as well as a .gitlab-ci.yml file to describe the pipelines.
Since everyone's applications will be different, this system will likely have to use a similar architecture to cookiecutter, where we allow users to define their Dockerfile and .gitlab-ci.yml templates and datakit creates files based on those templates.