https://github.com/haydenk/docker-ansible-testing
Docker images for testing Ansible roles across multiple Linux distributions. Multi-arch (linux/amd64, linux/arm64) builds for Debian, Ubuntu, Fedora, Rocky Linux, Amazon Linux, and Alpine.
https://github.com/haydenk/docker-ansible-testing
alpine amazonlinux ansible ansible-testing arm64 debian docker docker-buildkit fedora github-actions linux multi-arch rockylinux testing ubuntu
Last synced: about 2 months ago
JSON representation
Docker images for testing Ansible roles across multiple Linux distributions. Multi-arch (linux/amd64, linux/arm64) builds for Debian, Ubuntu, Fedora, Rocky Linux, Amazon Linux, and Alpine.
- Host: GitHub
- URL: https://github.com/haydenk/docker-ansible-testing
- Owner: haydenk
- License: gpl-3.0
- Created: 2026-03-10T04:19:31.000Z (2 months ago)
- Default Branch: develop
- Last Pushed: 2026-03-10T05:06:58.000Z (2 months ago)
- Last Synced: 2026-03-10T12:40:11.705Z (2 months ago)
- Topics: alpine, amazonlinux, ansible, ansible-testing, arm64, debian, docker, docker-buildkit, fedora, github-actions, linux, multi-arch, rockylinux, testing, ubuntu
- Language: Dockerfile
- Size: 60.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# docker-ansible-testing
Multi-architecture Docker images for testing [Ansible](https://www.ansible.com/) roles across a variety of Linux distributions. Each image includes Ansible, Python 3, and a minimal set of packages needed to run Ansible playbooks inside a container.
## Images
Images are published to the GitHub Container Registry at `ghcr.io/haydenk/docker-ansible-testing/:`.
| Distro | Versions |
|--------|---------|
| `debian` | `trixie-slim`, `bookworm-slim`, `bullseye-slim` |
| `ubuntu` | `noble`, `jammy`, `focal` |
| `fedora` | `41`, `40`, `39` |
| `rockylinux` | `9-minimal`, `8-minimal` |
| `amazonlinux` | `2023`, `2` |
| `alpine` | `3.21`, `3.20`, `3.19` |
All images are built for `linux/amd64` and `linux/arm64`.
## Tags
Each image is published with two tags per release:
| Tag | Description |
|-----|-------------|
| `` | Floating — always points to the latest release |
| `-` | Pinned — locked to a specific release date |
**Examples:**
```
ghcr.io/haydenk/docker-ansible-testing/debian:bookworm-slim
ghcr.io/haydenk/docker-ansible-testing/debian:bookworm-slim-20260309
```
Releases use date-based versioning: `YYYYMMDD`, `YYYYMMDD.1`, `YYYYMMDD.2`, etc.
## Usage
### Pull an image
```bash
docker pull ghcr.io/haydenk/docker-ansible-testing/debian:bookworm-slim
```
### Verify Ansible
```bash
docker run --rm ghcr.io/haydenk/docker-ansible-testing/debian:bookworm-slim ansible --version
```
### Run a playbook
```bash
docker run --rm \
-v "$(pwd)":/ansible \
ghcr.io/haydenk/docker-ansible-testing/debian:bookworm-slim \
ansible-playbook /ansible/playbook.yml
```
### Use in a Molecule scenario
```yaml
# molecule/default/molecule.yml
driver:
name: docker
platforms:
- name: debian-bookworm
image: ghcr.io/haydenk/docker-ansible-testing/debian:bookworm-slim
pre_build_image: true
- name: ubuntu-noble
image: ghcr.io/haydenk/docker-ansible-testing/ubuntu:noble
pre_build_image: true
- name: fedora-41
image: ghcr.io/haydenk/docker-ansible-testing/fedora:41
pre_build_image: true
```
## What's included
Each image contains:
- `ansible` (latest via pip)
- `python3` and `pip`
- `sudo`
- `/etc/ansible/hosts` with a local inventory entry
Debian and Ubuntu images additionally include `systemd` for roles that require service management.
## Development
### Prerequisites
- Docker with Buildx
- QEMU (for multi-arch builds)
### Build an image locally
```bash
docker buildx build \
--platform linux/amd64 \
--build-arg VERSION=bookworm-slim \
-t test/debian:bookworm-slim \
./debian
```
### Run the verification checks
```bash
docker run --rm test/debian:bookworm-slim ansible --version
docker run --rm test/debian:bookworm-slim python3 --version
docker run --rm test/debian:bookworm-slim test -f /etc/ansible/hosts
```
## Contributing
1. Fork the repository
2. Create a feature branch following git flow: `feature/`
3. Make your changes — if adding or removing a distro or version, update `matrix.json`
4. Open a pull request against `develop`
See [CONTRIBUTING](CONTRIBUTING.md) for the full checklist.
## License
[GNU General Public License v3.0](LICENSE)