diff --git a/docs/OPTIMIZATION_RECOMMENDATIONS.md b/docs/OPTIMIZATION_RECOMMENDATIONS.md index 1339639..221a5ae 100644 --- a/docs/OPTIMIZATION_RECOMMENDATIONS.md +++ b/docs/OPTIMIZATION_RECOMMENDATIONS.md @@ -34,21 +34,21 @@ Instead of full Ubuntu latest, use optimized images from [Gitea's runner-images] ```yaml # Heavy Runner - Java workloads -- "java:docker://docker.gitea.com/runner-images:ubuntu-22.04-java17-maven" -- "heavy:docker://docker.gitea.com/runner-images:ubuntu-22.04-java17-maven" +- "java:docker://openjdk:17-jdk-slim" +- "heavy:docker://openjdk:17-jdk-slim" # Heavy Runner - Python workloads -- "python:docker://docker.gitea.com/runner-images:ubuntu-22.04-python3.11" +- "python:docker://python:3.11-slim" # Light Runner - Node.js workloads -- "nodejs:docker://docker.gitea.com/runner-images:ubuntu-22.04-node20" -- "frontend:docker://docker.gitea.com/runner-images:ubuntu-22.04-node20" +- "nodejs:docker://node:20-slim" +- "frontend:docker://node:20-slim" # Docker Runner - Docker-in-Docker -- "docker:docker://docker.gitea.com/runner-images:ubuntu-22.04-docker" +- "docker:docker://docker:24-dind" # Security Runner - Security tools -- "security:docker://docker.gitea.com/runner-images:ubuntu-22.04-security" +- "security:docker://alpine:3.19" ``` ### 2. Benefits of Specialized Images @@ -141,32 +141,31 @@ Savings: 50s per job (42% faster) - [ ] Fine-tune based on metrics - [ ] Update documentation -## Available Gitea Runner Images +## Available Docker Images -Check [Gitea's runner-images repository](https://gitea.com/docker.gitea.com/runner-images) for available images: +**Note**: Gitea doesn't provide a comprehensive set of specialized runner images. We use official, well-maintained Docker images instead: -### Java Images: -- `ubuntu-22.04-java17-maven` -- `ubuntu-22.04-java21-maven` -- `ubuntu-22.04-java17-gradle` +### Official Docker Images Used: -### Python Images: -- `ubuntu-22.04-python3.11` -- `ubuntu-22.04-python3.12` -- `ubuntu-22.04-python3.11-pip` +#### Java Images: +- `openjdk:17-jdk-slim` - OpenJDK 17 with Debian slim base +- `openjdk:21-jdk-slim` - OpenJDK 21 with Debian slim base -### Node.js Images: -- `ubuntu-22.04-node18` -- `ubuntu-22.04-node20` -- `ubuntu-22.04-node21` +#### Python Images: +- `python:3.11-slim` - Python 3.11 with Debian slim base +- `python:3.12-slim` - Python 3.12 with Debian slim base -### Docker Images: -- `ubuntu-22.04-docker` -- `ubuntu-22.04-docker-compose` +#### Node.js Images: +- `node:20-slim` - Node.js 20 with Debian slim base +- `node:18-slim` - Node.js 18 with Debian slim base -### Security Images: -- `ubuntu-22.04-security` -- `ubuntu-22.04-trivy` +#### Docker Images: +- `docker:24-dind` - Docker-in-Docker with Alpine base +- `docker:24-dind-rootless` - Rootless Docker-in-Docker + +#### Security Images: +- `alpine:3.19` - Minimal Alpine Linux for security tools +- `alpine:latest` - Latest Alpine Linux ## Next Steps diff --git a/docs/RUNNER_LABELS.md b/docs/RUNNER_LABELS.md index 8ea4295..c6b1a25 100644 --- a/docs/RUNNER_LABELS.md +++ b/docs/RUNNER_LABELS.md @@ -73,39 +73,47 @@ Each runner configuration file maps labels to Docker images: ### Heavy Runner (`config_heavy.yaml`) ```yaml labels: + # Primary optimized images (checked first) + - "java:docker://openjdk:17-jdk-slim" + - "python:docker://python:3.11-slim" + - "heavy:docker://openjdk:17-jdk-slim" + # Fallback images (checked last) - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "self-hosted:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "heavy:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "java:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "python:docker://docker.gitea.com/runner-images:ubuntu-latest" ``` ### Light Runner (`config_light.yaml`) ```yaml labels: + # Primary optimized images (checked first) + - "nodejs:docker://node:20-slim" + - "frontend:docker://node:20-slim" + - "light:docker://node:20-slim" + # Fallback images (checked last) - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "self-hosted:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "light:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "nodejs:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "frontend:docker://docker.gitea.com/runner-images:ubuntu-latest" ``` ### Docker Runner (`config_docker.yaml`) ```yaml labels: + # Primary optimized images (checked first) + - "docker:docker://docker:24-dind" + - "integration:docker://docker:24-dind" + # Fallback images (checked last) - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "self-hosted:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "docker:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "integration:docker://docker.gitea.com/runner-images:ubuntu-latest" ``` ### Security Runner (`config_security.yaml`) ```yaml labels: + # Primary optimized images (checked first) + - "security:docker://alpine:3.19" + - "scan:docker://alpine:3.19" + # Fallback images (checked last) - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "self-hosted:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "security:docker://docker.gitea.com/runner-images:ubuntu-latest" - - "scan:docker://docker.gitea.com/runner-images:ubuntu-latest" ``` ## Label Priority and Matching diff --git a/runners/config_docker.yaml b/runners/config_docker.yaml index 219d586..98bb5c4 100644 --- a/runners/config_docker.yaml +++ b/runners/config_docker.yaml @@ -44,8 +44,8 @@ runner: # If it's empty when execute `daemon`, will use labels in `.runner` file. labels: # Primary optimized images (checked first) - - "docker:docker://docker.gitea.com/runner-images:ubuntu-22.04-docker" - - "integration:docker://docker.gitea.com/runner-images:ubuntu-22.04-docker" + - "docker:docker://docker:24-dind" + - "integration:docker://docker:24-dind" # Fallback images (checked last) - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "self-hosted:docker://docker.gitea.com/runner-images:ubuntu-latest" diff --git a/runners/config_heavy.yaml b/runners/config_heavy.yaml index ff3e4c3..f6e0ab2 100644 --- a/runners/config_heavy.yaml +++ b/runners/config_heavy.yaml @@ -44,9 +44,9 @@ runner: # If it's empty when execute `daemon`, will use labels in `.runner` file. labels: # Primary optimized images (checked first) - - "java:docker://docker.gitea.com/runner-images:ubuntu-22.04-java17-maven" - - "python:docker://docker.gitea.com/runner-images:ubuntu-22.04-python3.11" - - "heavy:docker://docker.gitea.com/runner-images:ubuntu-22.04-java17-maven" + - "java:docker://openjdk:17-jdk-slim" + - "python:docker://python:3.11-slim" + - "heavy:docker://openjdk:17-jdk-slim" # Fallback images (checked last) - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "self-hosted:docker://docker.gitea.com/runner-images:ubuntu-latest" diff --git a/runners/config_light.yaml b/runners/config_light.yaml index 31c301e..a569964 100644 --- a/runners/config_light.yaml +++ b/runners/config_light.yaml @@ -44,9 +44,9 @@ runner: # If it's empty when execute `daemon`, will use labels in `.runner` file. labels: # Primary optimized images (checked first) - - "nodejs:docker://docker.gitea.com/runner-images:ubuntu-22.04-node20" - - "frontend:docker://docker.gitea.com/runner-images:ubuntu-22.04-node20" - - "light:docker://docker.gitea.com/runner-images:ubuntu-22.04-node20" + - "nodejs:docker://node:20-slim" + - "frontend:docker://node:20-slim" + - "light:docker://node:20-slim" # Fallback images (checked last) - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "self-hosted:docker://docker.gitea.com/runner-images:ubuntu-latest" diff --git a/runners/config_security.yaml b/runners/config_security.yaml index 2ac2417..96c8f10 100644 --- a/runners/config_security.yaml +++ b/runners/config_security.yaml @@ -44,8 +44,8 @@ runner: # If it's empty when execute `daemon`, will use labels in `.runner` file. labels: # Primary optimized images (checked first) - - "security:docker://docker.gitea.com/runner-images:ubuntu-22.04-security" - - "scan:docker://docker.gitea.com/runner-images:ubuntu-22.04-security" + - "security:docker://alpine:3.19" + - "scan:docker://alpine:3.19" # Fallback images (checked last) - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "self-hosted:docker://docker.gitea.com/runner-images:ubuntu-latest"