Captain converts your Git workflow into Docker containers for Continuous Delivery by automating builds, tests, and pushes based on git state.
Captain is a CLI tool that automates converting Git workflows into Docker containers for Continuous Delivery. It builds Docker images from Dockerfiles, runs tests, and pushes images to registries, with tagging tied to git commits, branches, and tags. It solves the problem of manually managing Docker builds and deployments in sync with git changes.
DevOps engineers and developers setting up automated CI/CD pipelines using Docker and Git, particularly those managing multi-container projects or needing reproducible builds across branches.
Developers choose Captain for its seamless integration of Git states with Docker tagging, reducing manual steps in container workflows. Its declarative YAML configuration and pre/post hooks offer flexibility while ensuring consistency across build and test stages.
Captain - Convert your Git workflow to Docker :whale: containers
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically tags Docker images as latest, commit-id, branch-name, or tag-name based on git state, ensuring container tags directly mirror repository history as described in the Docker Tags Lifecycle section.
Uses a captain.yml file to define build, test, and push stages, enabling reproducible pipelines that are version-controlled and easy to modify.
Supports pre and post commands for custom setup and cleanup tasks, allowing integration with external tools or processes before and after image builds.
Detects and builds multiple Dockerfiles (e.g., Dockerfile, Dockerfile.test) within a project, simplifying management of multi-container setups without manual scripting.
The roadmap lists planned CI service wrappers as pending, so teams must manually configure Captain with their CI/CD platforms, adding complexity for immediate use.
Requires adding ~/.captain/bin to PATH manually after installation, which can be cumbersome for automated or team-wide setups compared to package managers.
Lacks fine-grained control over which images or tags are pushed; the roadmap mentions this as a future feature, forcing workarounds for excluding test images or specific branches.