Dockerized QEMU image for reproducibly testing stuff on Windows.
Prepare OS image as described below.
Disk image is used as read-only using the QEMU disk snapshot option,
all local changes are lost after Docker container restart.
Specify MAC address via environment variable
For more example see
You probably need the machines to come up with
fixed IP-s. Use static leases on your DHCP server
to assign the IP addresses to the VM-s.
Windows template image preparation
Prepare the image using libvirt or similar where you can specify
virtio SCSI controller for storage.
For Windows 10 install also mount
virtio SCSI and networking drivers ISO.
In Windows 10 partitioning wizard provide drivers from that ISO.
Install OpenSSH server.
Make sure OpenSSH starts during boot.
Insert Jenkins or your favourite CI/CD software SSH public keys into
C:\ProgramData\ssh\administrators_authorized_keys and adjust ACL-s as described
Use the resulting virtual machine disk image with this Docker image.
If you can't ping the VM from host, make sure bridge mode is used on the macvlanX interface:
ip -d link show type macvtap