# PSProxmoxVE development and integration testing container # # Two targets: # dev - .NET SDK + PowerShell + Pester (build & test, works on ARM/x86) # dev-infra - Adds Terraform + PVE provisioning tools (x86 only) # # Usage: # # For build + test (works on Mac M-series): # docker compose -f tests/docker-compose.test.yml up -d # # # For full CI flow including provisioning (x86 only): # docker compose -f tests/docker-compose.test.yml --profile infra up -d # ── Base: .NET SDK + PowerShell + Pester ──────────────────────────── FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS dev ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ curl jq openssh-client ca-certificates apt-transport-https gnupg \ && curl -fsSL https://packages.microsoft.com/keys/microsoft.asc \ | gpg --dearmor -o /usr/share/keyrings/microsoft-archive-keyring.gpg \ && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] \ https://packages.microsoft.com/ubuntu/24.04/prod noble main" \ > /etc/apt/sources.list.d/microsoft-prod.list \ && apt-get update && apt-get install -y --no-install-recommends powershell \ && rm -rf /var/lib/apt/lists/* \ && pwsh -NoProfile -Command \ 'Set-PSRepository -Name PSGallery -InstallationPolicy Trusted; \ Install-Module -Name Pester -MinimumVersion 5.0 -Scope AllUsers -Force' \ && mkdir -p /usr/local/share/powershell/Modules/PSProxmoxVE WORKDIR /repo CMD ["pwsh", "-NoProfile"] # ── Full: adds Terraform + PVE provisioning tools (x86 only) ─────── FROM dev AS dev-infra RUN apt-get update && apt-get install -y --no-install-recommends \ dosfstools mtools sshpass python3 xorriso gnupg \ && curl -fsSL https://apt.releases.hashicorp.com/gpg \ | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg \ && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \ https://apt.releases.hashicorp.com noble main" \ > /etc/apt/sources.list.d/hashicorp.list \ && curl -fsSL https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg \ -o /usr/share/keyrings/proxmox-release-bookworm.gpg \ && echo "deb [signed-by=/usr/share/keyrings/proxmox-release-bookworm.gpg] \ http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \ > /etc/apt/sources.list.d/proxmox-pve.list \ && apt-get update && apt-get install -y --no-install-recommends \ terraform proxmox-auto-install-assistant qemu-utils \ && rm -rf /var/lib/apt/lists/*