Files
shimmy/packaging/docker
Michael A. Kuykendall e074943946 fix(docker): rewrite Dockerfiles with proper syntax for CI builds
- Replace broken heredoc syntax (unsupported in Docker RUN) with printf
- Simplify test scripts to verify cross-compilation build success
- Remove Wine and QEMU runtime testing (cross-compile build verification only)
- Use x86_64-pc-windows-gnu target (MinGW) instead of MSVC for Windows
- Generate proper JSON test results for workflow validation
2026-01-08 14:58:31 -06:00
..

Cross-Platform Vision Testing with Docker

This directory contains Docker configurations for testing Shimmy Vision features across different platforms before release.

Overview

Since vision features require GPU acceleration and licensing, we need a systematic way to test binaries on all target platforms. This setup uses Docker containers to simulate different environments and run the vision test suite.

Supported Platforms

  • Linux x86_64 (Ubuntu 22.04 with CUDA support)
  • Linux ARM64 (Ubuntu 22.04)
  • Windows x86_64 (via Wine in Docker)
  • macOS Intel (via Darling or cross-compilation testing)
  • macOS ARM64 (Apple Silicon - requires external testing)

Quick Start

# Build and test Linux x86_64 with CUDA
docker build -f docker/Dockerfile.vision-test-linux-cuda -t shimmy-vision-test-linux-cuda .
docker run --gpus all -v $(pwd):/workspace shimmy-vision-test-linux-cuda

# Build and test Linux ARM64
docker build -f docker/Dockerfile.vision-test-linux-arm64 -t shimmy-vision-test-linux-arm64 .
docker run -v $(pwd):/workspace shimmy-vision-test-linux-arm64

# Build and test Windows x86_64 (via Wine)
docker build -f docker/Dockerfile.vision-test-windows -t shimmy-vision-test-windows .
docker run -v $(pwd):/workspace shimmy-vision-test-windows

Test Results

Each test container will:

  1. Build Shimmy with vision features for the target platform
  2. Download and cache vision models
  3. Run the vision test suite (scripts/test_cross_compiled_vision.py)
  4. Generate a test report with performance metrics
  5. Validate license enforcement

CI/CD Integration

These containers can be used in GitHub Actions for automated cross-platform testing:

- name: Test Vision on Linux CUDA
  run: |
    docker build -f docker/Dockerfile.vision-test-linux-cuda -t test .
    docker run --gpus all test

- name: Test Vision on Linux ARM64
  run: |
    docker build -f docker/Dockerfile.vision-test-linux-arm64 -t test .
    docker run test

Manual Testing Checklist

Before going live, ensure all platforms pass:

  • Linux x86_64 CUDA (GPU acceleration)
  • Linux ARM64 (CPU-only)
  • Windows x86_64 (Vulkan GPU)
  • macOS Intel (MLX if available)
  • macOS ARM64 (MLX GPU - external testing required)

Test Images

The test suite uses these standard images:

  • assets/vision-samples/final-test.png - Main test image
  • assets/vision-samples/ocr-test.png - OCR accuracy test
  • assets/vision-samples/layout-test.png - Layout analysis test

Performance Baselines

Expected performance (with GPU):

  • Image loading: < 2 seconds
  • Model inference: 4-15 seconds
  • Total processing: < 30 seconds

CPU-only performance will be 10-50x slower and should be flagged as warnings. c:\Users\micha\repos\shimmy-workspace\packaging\docker\README.md