Container-Compose brings (limited) Docker Compose support to Apple Container, allowing you to define and orchestrate multi-container applications on Apple platforms using familiar Compose files. This project is not a Docker or Docker Compose wrapper but a tool to bridge Compose workflows with Apple's container management ecosystem.
Note: Container-Compose does not automatically configure DNS for macOS 15 (Sequoia). Use macOS 26 (Tahoe) for an optimal experience.
- Compose file support: Parse and interpret 
docker-compose.ymlfiles to configure Apple Containers. - Apple Container orchestration: Launch and manage multiple containerized services using Apple’s native container runtime.
 - Environment configuration: Support for environment variable files (
.env) to customize deployments. - Service dependencies: Specify service dependencies and startup order.
 - Volume and network mapping: Map data and networking as specified in Compose files to Apple Container equivalents.
 - Extensible: Designed for future extension and customization.
 
- A Mac running macOS with Apple Container support (macOS Sonoma or later recommended)
 - Git
 - Xcode command line tools (for building, if building from source)
 
You can install Container-Compose via Homebrew (recommended):
brew update
brew install container-composeOr, build it from source:
- 
Clone the repository:
git clone https://github.com/Mcrich23/Container-Compose.git cd Container-Compose - 
Build the executable:
Note: Ensure you have Swift installed (or the required toolchain).
make build
 - 
(Optional): Install globally
make install
 
After installation, simply run:
container-composeYou may need to provide a path to your docker-compose.yml and .env file as arguments.
Container-Compose/
├── docker-compose.yml
├── .env
├── README.md
└── (source code and other configuration files)
docker-compose.yml: Your Compose specification..env: Your environment variables.README.md: Project documentation.
- Add a new service: Edit 
docker-compose.ymland define your new service under theservices:section. - Override configuration: Use a 
docker-compose.override.ymlfor local development customizations. - Persistent data: Define named volumes in 
docker-compose.ymlfor data that should persist between container restarts. 
Contributions are welcome! Please open issues or submit pull requests to help improve this project.
- Fork the repository.
 - Create your feature branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -am 'Add new feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a pull request.
 
This project is licensed under the MIT License. See the LICENSE file for details.
If you encounter issues or have questions, please open an Issue.
Happy Coding! 🚀