A reusable, Ubuntu LTS-based Docker image for self-hosted GitHub Actions runners with Kaniko support for secure, isolated container builds.
- ✅ Kaniko Integration: Sử dụng Kaniko thay vì Docker-in-Docker cho container builds an toàn
- ✅ Bảo mật cao: Container chạy như user thường, không cần quyền root
- ✅ Cô lập hoàn toàn: Không cần privileged mode hoặc Docker daemon
- ✅ Hiệu suất tốt: Không có overhead của Docker-in-Docker
- ✅ GitHub Actions tích hợp: Tự động đăng ký và gỡ bỏ runner
docker run -d \
--name kaniko-runner \
-e GITHUB_PAT="your-github-token" \
-e GITHUB_OWNER="your-org" \
-e GITHUB_REPOSITORY="your-repo" \
-e RUNNER_LABELS="kaniko,self-hosted,secure" \
s1248/github-self-hosted-runners:latest- Hướng dẫn sử dụng Kaniko - Chi tiết về cách sử dụng Kaniko runner
- Workflow ví dụ - GitHub Actions workflow mẫu
| Aspect | Docker-in-Docker | Kaniko |
|---|---|---|
| User privileges | Cần root | ✅ User thường |
| Container mode | Privileged | ✅ Unprivileged |
| Daemon requirement | Docker daemon | ✅ Không cần daemon |
| Isolation | Shared daemon | ✅ Hoàn toàn cô lập |
| Attack surface | Lớn | ✅ Nhỏ |
kaniko-build.sh Dockerfile . my-registry.com/my-image:tag- name: Build với Kaniko
run: |
kaniko-build.sh \
Dockerfile \
. \
${{ env.REGISTRY }}/my-app:${{ github.sha }}- Bảo mật tối đa: Không cần quyền root hay privileged containers
- Đơn giản hóa: Loại bỏ phức tạp của Docker-in-Docker setup
- Hiệu suất: Giảm overhead và tăng tốc độ build
- Ổn định: Ít xung đột tài nguyên và vấn đề về permissions
- Tuân thủ: Phù hợp với các yêu cầu bảo mật nghiêm ngặt
| Variable | Mô tả | Bắt buộc |
|---|---|---|
GITHUB_PAT |
GitHub Personal Access Token | ✅ |
GITHUB_OWNER |
GitHub username hoặc organization | ✅ |
GITHUB_REPOSITORY |
Repository name | ✅ |
RUNNER_LABELS |
Labels cho runner | ❌ |
GITHUB_PAT_FILE |
Path đến file chứa PAT | ❌ |