# USMT Dash - demo container # # Runs the real USMT-Server.ps1 and USMT-Worker.ps1 under PowerShell 7 with -Demo, so the # worker sweeps a simulated fleet instead of SCCM/AD/SMB. The web API is read-only in demo # mode; visitor changes are simulated in each visitor's browser. # # docker build -t usmt-dash . # docker run -p 8080:8080 usmt-dash FROM mcr.microsoft.com/powershell:lts-ubuntu-22.04 ENV USMT_MODE=Demo \ POWERSHELL_TELEMETRY_OPTOUT=1 \ POWERSHELL_UPDATECHECK=Off \ DOTNET_CLI_TELEMETRY_OPTOUT=1 \ TZ=UTC WORKDIR /app COPY . /app RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata \ && rm -rf /var/lib/apt/lists/* \ && useradd --system --home /app --shell /usr/sbin/nologin usmt \ && mkdir -p /app/Data \ && chown -R usmt:usmt /app/Data \ && chmod +x /app/docker/start.sh USER usmt EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD pwsh -NoProfile -Command "try { if ((Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8080/get-config -TimeoutSec 5).StatusCode -eq 200) { exit 0 } } catch {}; exit 1" ENTRYPOINT ["/app/docker/start.sh"]