Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces comprehensive Docker support for the Python Template Server, including containerization, orchestration, health checks, and monitoring with Prometheus and Grafana. It also adds CI/CD integration for building and testing Docker images. The changes are grouped into Docker infrastructure, CI/CD workflows, and monitoring/observability.
Docker infrastructure:
Dockerfilethat builds the Python Template Server wheel usinguv, installs it in a secure, non-root runtime container, generates tokens and certificates if missing, and provides a health check endpoint..dockerignorefile to exclude unnecessary files and directories from Docker build context, improving build efficiency and security.docker-compose.ymlto orchestrate the Python Template Server, Prometheus, and Grafana containers, including persistent volumes, environment configuration, health checks, and network setup.CI/CD workflows:
.github/workflows/docker.yml) for building, running, and testing Docker containers in both development and production modes, ensuring proper permissions and clean startup/shutdown..github/actions/docker-check-containers/action.yml) to check the health of the Python server, Prometheus, and Grafana containers by polling their endpoints with retries and timeouts.Monitoring and observability:
grafana/dashboards/authentication-metrics.json) for visualizing authentication metrics, including authentication rates, success/failure counts, failure reasons, and success percentage, all sourced from Prometheus.