Docker Test
Test voxtype builds and packages in isolated Docker containers.
Build Testing
Build AVX2 Binary (Clean Toolchain)
Uses Ubuntu 22.04 to avoid AVX-512 instruction contamination:
./scripts/build-docker.sh
Output: releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx2
Build Vulkan Binary
Uses remote Docker context (pre-AVX-512 CPU) for clean build:
./scripts/build-docker-vulkan.sh
Output: releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-vulkan
Full Docker Compose Build
VERSION=0.4.14 docker compose -f docker-compose.build.yml build --no-cache avx2 vulkan VERSION=0.4.14 docker compose -f docker-compose.build.yml up avx2 vulkan
Package Testing
Test Debian Package
Build test container
docker run -it --rm -v $(pwd)/releases:/releases ubuntu:22.04 bash
Inside container:
apt update && apt install -y /releases/0.4.14/voxtype_0.4.14-1_amd64.deb voxtype --version voxtype --help
Test RPM Package
Fedora
docker run -it --rm -v $(pwd)/releases:/releases fedora:latest bash
Inside container:
dnf install -y /releases/0.4.14/voxtype-0.4.14-1.x86_64.rpm voxtype --version
Distro-Specific Testing
Ubuntu/Debian
docker run -it --rm ubuntu:22.04 bash -c " apt update && apt install -y curl libasound2 && curl -L https://github.com/peteonrails/voxtype/releases/download/v0.4.14/voxtype-0.4.14-linux-x86_64-avx2 -o /usr/bin/voxtype && chmod +x /usr/bin/voxtype && voxtype --version "
Fedora
docker run -it --rm fedora:latest bash -c " dnf install -y alsa-lib curl && curl -L https://github.com/peteonrails/voxtype/releases/download/v0.4.14/voxtype-0.4.14-linux-x86_64-avx2 -o /usr/bin/voxtype && chmod +x /usr/bin/voxtype && voxtype --version "
Arch Linux
docker run -it --rm archlinux:latest bash -c " pacman -Sy --noconfirm base-devel git &&
Test AUR package build
git clone https://aur.archlinux.org/voxtype-bin.git && cd voxtype-bin && makepkg -si --noconfirm "
Docker Context Management
For builds requiring a pre-AVX-512 CPU:
List contexts
docker context ls
Switch to remote build server
docker context use truenas
Build clean binaries
docker compose -f docker-compose.build.yml up avx2 vulkan
Switch back to local
docker context use default
Troubleshooting
Build cache issues:
docker compose -f docker-compose.build.yml build --no-cache
Container won't start: Check if audio devices are needed - voxtype requires ALSA/PipeWire which may not be available in containers.
Version mismatch after build: Docker cached old layers. Always use --no-cache for release builds.