A robust and flexible solution for deploying self-hosted GitHub Action runners using Docker. This project simplifies the process of setting up, managing, and scaling your GitHub Actions infrastructure.
- 🐳 Containerized GitHub Action runners
- 🔄 Easy setup and teardown process
- 🔢 Scalable architecture supporting multiple runners
- 🔧 Configurable cache directory for improved performance
- 🖥️ Cross-platform support (Windows and Unix-like systems)
- 🛠️ Integrated build and test processes
- Docker
- Docker Compose
- Make
- PowerShell (for Windows)
- Bash (for Unix-like systems)
-
Clone the repository:
git clone https://github.com/yourusername/github-runners-docker.git cd github-runners-docker
-
Set up the environment:
make setup
-
Build the Docker image:
make build
-
Start the runners:
make up
- Start runners:
make up
- Stop runners:
make down
- View logs:
make logs
- Clean up:
make clean
- Run tests:
make test
- Test Buildx setup:
make test-buildx
The project uses a .env
file for configuration. The setup process will guide you through creating this file, including setting the DOCKER_CACHE_DIR
for improved performance.
github-runners-docker/
├── .devcontainer/
│ └── devcontainer.json
├── docker/
│ ├── scripts/
│ │ ├── buildx-test.sh
│ │ ├── docker-access-test.sh
│ │ └── start.sh
│ └── Dockerfile.dood
├── etc/
│ ├── enable-docker-tcp.ps1
│ ├── setup-cache-dir.ps1
│ └── setup-cache-dir.sh
├── tests/
│ ├── test_docker/
│ └── test_etc/
│ └── test-enable-docker-tcp.ps1
├── .env
├── .gitignore
├── compose.yml
├── LICENSE
├── Makefile
└── README.md
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub Actions team for their excellent documentation
- Docker community for continuous support and innovations
- Allessandro Baccini for providing the base template
Made with by Amadou