A collection of custom Docker images published to GitHub Container Registry (GHCR) for personal and community use. These images are automatically built, tested, and published via GitHub Actions workflows.
All images are published to ghcr.io/mike12806/public-docker/[image-name] and are available in the following variants:
latest- Latest build from the main branchv*.*.*- Semantic versioned releases<git-sha>- Specific commit builds
Image: ghcr.io/mike12806/public-docker/runner
A feature-rich self-hosted GitHub Actions runner image designed for Kubernetes environments. This image extends the official GitHub Actions runner with pre-installed tools and dependencies commonly needed in CI/CD workflows.
Base Image: ghcr.io/actions/actions-runner:2.329.0
Included Tools:
- CodeQL (v2.23.3) - Pre-installed in toolcache layout for security scanning
- AWS CLI v2 - For AWS resource management
- Docker Compose Plugin - For multi-container applications
- Python 3 with pip, venv, and pipx
- Ansible (via pipx) - For configuration management
- Linode CLI (via pipx) - For Linode cloud management
- Backblaze B2 CLI - For B2 cloud storage operations
- yq - YAML processor for parsing and manipulating YAML files
- jq - JSON processor (from base image)
- sshpass - Non-interactive SSH password authentication
- rsync - File synchronization utility
- curl, wget - HTTP clients for downloading files
- OpenSSH client - For SSH operations
Key Features:
- CodeQL pre-installed in the standard toolcache layout (
/opt/hostedtoolcache/CodeQL) - Toolcache directory owned by runner user for proper permissions
- Python packages installed via pipx for isolation
- Optimized for self-hosted runners in Kubernetes
Usage Example:
# In your Kubernetes runner deployment
spec:
containers:
- name: runner
image: ghcr.io/mike12806/public-docker/runner:latestUse Cases:
- Self-hosted GitHub Actions runners
- CI/CD pipelines requiring AWS, Ansible, or CodeQL
- Security scanning workflows with CodeQL
- Infrastructure automation tasks
Image: ghcr.io/mike12806/public-docker/kubectl
A kubectl image with Redis tools for Kubernetes operations that require Redis interactions.
Base Image: docker.io/alpine/kubectl:1.34.2
Included Tools:
- kubectl (v1.34.2) - Kubernetes command-line tool
- redis-cli - Redis command-line interface for Redis operations
- redis-server - Redis server (available but not typically run in this image)
- curl - HTTP client for API calls and downloads (included in base image)
Usage Example:
# In a Kubernetes Job
apiVersion: batch/v1
kind: Job
metadata:
name: kubectl-redis-job
spec:
template:
spec:
containers:
- name: kubectl
image: ghcr.io/mike12806/public-docker/kubectl:latest
command: ["kubectl", "get", "pods"]
restartPolicy: NeverUse Cases:
- Kubernetes maintenance jobs with Redis operations
- CI/CD pipelines for Kubernetes deployments
- Scripted Kubernetes operations requiring Redis client access
- Database migration or initialization scripts that interact with both Kubernetes and Redis
Images are automatically built and published when:
- Changes are pushed to the
Dockerfiles/**directory on the main branch - Manually triggered via workflow_dispatch
- Daily via scheduled cron job at 10:00 AM UTC
The build process:
- Discovers all Dockerfiles in the
Dockerfiles/directory - Builds each image using Docker Buildx
- Tags with
latest, semantic version, and git SHA - Pushes to GitHub Container Registry
- Creates a GitHub release with changelog
Pull requests automatically trigger Docker build verification:
- All Dockerfiles are discovered and built
- Smoke tests are run to verify basic functionality
- Runner image tests verify Python and CodeQL installations
- Other images test basic shell functionality
This repository uses Renovate for automated dependency updates:
- Base images in Dockerfiles are automatically updated
- Minor and patch updates are auto-merged
- Major updates require manual review
- Daily checks for new versions
To add a new Docker image:
- Create a new directory under
Dockerfiles/[YourImageName]/ - Add your
Dockerfilein that directory - Optionally add a
READMEfile with image-specific documentation - Submit a pull request
- The CI will automatically build and test your image
- Once merged, the image will be published to GHCR
This repository is maintained by @mike12806. Individual Docker images may contain software with their own licenses. Please review the Dockerfiles for specific licensing information.