docker-test
π―Skillfrom peteonrails/voxtype
Automates Docker-based testing of voxtype builds across different Linux distributions and hardware configurations.
Installation
npx skills add https://github.com/peteonrails/voxtype --skill docker-testSkill Details
Test voxtype in Docker containers. Use for testing builds, verifying packages work on different distros, or isolating test environments.
Overview
# 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:
```bash
./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:
```bash
./scripts/build-docker-vulkan.sh
```
Output: releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-vulkan
Full Docker Compose Build
```bash
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
```bash
# 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
```bash
# 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
```bash
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
```bash
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
```bash
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:
```bash
# 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:
```bash
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.