A simple CLI tool to bring up Docker containers from multiple docker-compose.yml files in subdirectories.
- Scans a central directory for
docker-compose.ymlfiles. - Recursively searches subdirectories for Docker Compose projects.
- Automatically brings up (or down) all discovered containers using
docker compose. - Use a
.sprout-ignorefile to ignore certain directories of containers you don't want brought up. - A lightweight and convenient automation tool for managing multiple Docker services.
- Install Rust toolchain https://www.rust-lang.org/tools/install
- Run
cargo install dock_sprout
brew install Thompson-Jason/tap/dock_sproutgit clone https://github.com/Thompson-Jason/DockSprout.git
cd DockSprout
cargo build --releasesprout <root-directory> <docker-compose-direction>
--concurrent: Run all docker compose commands in parallel (faster for many projects)--verbose: Output docker compose logs to stdout/stderr
Bring up all containers, sequentially:
sprout ~/my-docker-projects up
Bring up all containers concurrently:
sprout --concurrent ~/my-docker-projects up
Bring up all containers and show all output:
sprout --verbose ~/my-docker-projects up
Bring down all containers concurrently and show output:
sprout --concurrent --verbose ~/my-docker-projects down
─── my-docker-projects
├── LubeLogger/
│ └── docker-compose.yml
├── ntfy/
│ └── docker-compose.yaml
├── Portainer/
│ ├── docker-compose.yaml
│ └──.conf
└── .sprout-ignore
This will bring up all three containers separately allowing for the esability of one command to bring all of your containers up and none of the downsides of a mono compose file.