- Run an RPi VM with internet access.
- Prepare an RPi configuration inside the VM.
- Flash the Raspberry VM image to a physical SD card.
- Preconfigure Raspberry Pi servers that work from first boot.
- Create reproducible server configurations using Ansible.
- Automate the distribution of configurations through a CI pipeline.
- Test ARM applications in a virtualized environment.
- Safely test backups without a second SD card.
- Pi 3 and 4 support
- 64 bit (ARMv8) Raspbian OS included
- Support for 32 bit ARMv7l distro's
- Internet access
- No root required
- Ansible preinstalled
- Safe, fully reproducible from source
- Configurable kernel
- Tested and stable
Code: Select all
# Download the container image docker pull ptrsr/pi-ci # Run the VM and put the virtual image in the dist folder in the home directory. # NOTE: login using the default username: pi , password: raspberry docker run --rm -it -v ~/dist:/dist ptrsr/pi-ci start # Flash the VM to an SD card (mmcblk0) docker run --rm -it -v $(realpath .):/dist --device=/dev/mmcblk0 ptrsr/pi-ci flash
It is actually possible to automate the complete configuration process, ensuring reproducible configurations. The automation can be done using Ansible, a simple example configuration can be found on the PI-CI repo. The example configuration is actually used in a CI pipeline to test the virtual machine before pushing it to Docker hub!
I'm planning to add image resizing soon, so that the virtual machine can have any side. For now, the virtual Pi is only 2gb and can be extended to 4gb using the resize command (or for advanced users, using qemu-img resize).
Creating sparse backups of SD cards is also on the TO-DO list.
I'd love to hear what you think, and happily answer any questions! Github stars and pull-requests are especially welcome.