Files
Johan Sandoval 4cc810adf5 Jump to the middle; bold jump arrows; Chicago time; demo hours 6 AM-9 PM
- Jump sheet: Top / Middle / Bottom with the Card fields arrows; the Jump
  button uses the same bold arrows.
- Container timezone defaults to America/Chicago (TZ in Dockerfile/compose).
- Demo worker follows its own business hours (Demo.BusinessHours, default
  06:00-21:00 every day) with the midnight pitstop; the simulated cycle in
  the browser shows the real worker's next run.
2026-10-06 22:16:58 +00:00

35 lines
1.2 KiB
Docker

# 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=America/Chicago
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"]