- Split scanner.py into scanners/ package (entra, mailbox, sharepoint, common) - Add Exchange Online PowerShell probe scripts under scanners/exo_scripts - Frontend overhaul: AlertHub-style sidebar layout, dark logo asset, expanded app.js/index.html/styles.css - Backend updates across main.py, worker.py, models.py, schemas.py, csv_import.py - Update Dockerfile and build-and-push.sh - Update TECHNICAL.md, changelog-develop.md, add summary changelog.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
40 lines
1.4 KiB
Docker
40 lines
1.4 KiB
Docker
FROM python:3.12-slim-bookworm
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV PYTHONPATH=/app/src
|
|
# Suppress PowerShell telemetry inside the container
|
|
ENV POWERSHELL_TELEMETRY_OPTOUT=1
|
|
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
|
|
|
|
WORKDIR /app
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# PowerShell 7 + ExchangeOnlineManagement module
|
|
# Required for Exchange Online mailbox permission scanning.
|
|
# ---------------------------------------------------------------------------
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates curl \
|
|
&& curl -fsSL https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb \
|
|
-o /tmp/packages-microsoft-prod.deb \
|
|
&& dpkg -i /tmp/packages-microsoft-prod.deb \
|
|
&& rm /tmp/packages-microsoft-prod.deb \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends powershell \
|
|
&& pwsh -NoProfile -NonInteractive -Command \
|
|
"Set-PSRepository -Name PSGallery -InstallationPolicy Trusted; \
|
|
Install-Module -Name ExchangeOnlineManagement -Scope AllUsers -Force -AllowClobber" \
|
|
&& apt-get purge -y curl \
|
|
&& apt-get autoremove -y \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY requirements.txt ./requirements.txt
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
COPY src ./src
|
|
COPY site ./site
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["uvicorn", "clearview_app.main:app", "--host", "0.0.0.0", "--port", "80"]
|