Dockerfile:
- Final stage now FROM mcr.microsoft.com/dotnet/runtime:8.0 instead of python:3.12-slim
+ MS apt repo. Reason: packages.microsoft.com GPG key uses SHA1 which Debian trixie
rejects since 2026-02-01. The official MS container image has no signing issue.
- Add python3 + pip3 + wget on top of dotnet base (bookworm)
- pip3 install --break-system-packages for debian bookworm compatibility
Makefile targets:
make build - build image locally
make rebuild - force no-cache build
make run - build + start container with port mappings
make run-quick - start without rebuilding
make stop/restart - container lifecycle
make logs - follow logs
make shell - bash into running container
make health - curl health endpoint
make smoke - end-to-end TCP + health test (scripts/smoke_test.sh)
make test - unit tests (pytest, no Docker)
make ps/ports - status helpers
make clean - stop + remove image