Favorita: Containerized Workflow & CI/CD
The reproducibility layer: a Dockerfile, docker-compose, a Makefile of common commands, and GitHub Actions for CI and docs. The boring scaffolding that decides whether a project runs on one machine or every machine.
Primary Outcome
A reproducible project setup where anyone can build, test, and run the stack with a single command.
Solution
Docker, a Makefile, and GitHub Actions that make the project reproducible, testable on every push, and runnable with one command.
Deliverables
A
Dockerfileanddocker-compose.ymlfor a consistent environmentA
Makefilewrapping the common build, test, and run commandsA CI workflow (
ci.yml) that lints and tests on every pushA docs workflow (
docs.yml) that builds and publishes dbt docsPinned requirements files for reproducible installs
Strategic Context
Reproducibility is the difference between a project and a liability. Without it, the original author becomes a single point of failure and onboarding takes days. Containers and CI are unglamorous, and they're what lets a data project outlive the person who wrote it.
Technical Architecture
Reproducibility is the difference between a project and a liability. Without it, the original author becomes a single point of failure and onboarding takes days. Containers and CI are unglamorous, and they're what lets a data project outlive the person who wrote it.
Problem Statement
Projects that only run on the author's machine become a single point of failure and take days to onboard onto.
Links
What's Included
Root-level Dockerfile, docker-compose.yml, Makefile, requirements*.txt/.in, and the .github/workflows CI and docs pipelines.
FAQs
Do I need Docker to use the other templates?
No, but it makes them reproducible. The dbt and model layers run without it; the container just guarantees the same environment.
What does CI actually run?
Linting and tests on each push, plus a separate workflow that builds and publishes the dbt docs site.
Tech Stack
Tool 1
Tool 4
Tool 4
Tool 3
Tool 2
Tool 4
Primary Outcome
A reproducible project setup where anyone can build, test, and run the stack with a single command.
Problem Statement
Projects that only run on the author's machine become a single point of failure and take days to onboard onto.
Solution
Docker, a Makefile, and GitHub Actions that make the project reproducible, testable on every push, and runnable with one command.
Links
Deliverables
A
Dockerfileanddocker-compose.ymlfor a consistent environmentA
Makefilewrapping the common build, test, and run commandsA CI workflow (
ci.yml) that lints and tests on every pushA docs workflow (
docs.yml) that builds and publishes dbt docsPinned requirements files for reproducible installs
What's Included
Root-level Dockerfile, docker-compose.yml, Makefile, requirements*.txt/.in, and the .github/workflows CI and docs pipelines.
Strategic Context
Reproducibility is the difference between a project and a liability. Without it, the original author becomes a single point of failure and onboarding takes days. Containers and CI are unglamorous, and they're what lets a data project outlive the person who wrote it.
FAQs
Do I need Docker to use the other templates?
No, but it makes them reproducible. The dbt and model layers run without it; the container just guarantees the same environment.
What does CI actually run?
Linting and tests on each push, plus a separate workflow that builds and publishes the dbt docs site.
Technical Architecture
Reproducibility is the difference between a project and a liability. Without it, the original author becomes a single point of failure and onboarding takes days. Containers and CI are unglamorous, and they're what lets a data project outlive the person who wrote it.
Tech Stack
Tool 1
Tool 4
Tool 4
Tool 3
Tool 2
Tool 4