Skip to content

Conversation

@javidahmed64592
Copy link
Owner

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:

  • Added a multi-stage Dockerfile that builds the Python Template Server wheel using uv, installs it in a secure, non-root runtime container, generates tokens and certificates if missing, and provides a health check endpoint.
  • Created a .dockerignore file to exclude unnecessary files and directories from Docker build context, improving build efficiency and security.
  • Added a docker-compose.yml to orchestrate the Python Template Server, Prometheus, and Grafana containers, including persistent volumes, environment configuration, health checks, and network setup.

CI/CD workflows:

  • Introduced a GitHub Actions workflow (.github/workflows/docker.yml) for building, running, and testing Docker containers in both development and production modes, ensuring proper permissions and clean startup/shutdown.
  • Added a custom composite GitHub Action (.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:

  • Added a Grafana dashboard (grafana/dashboards/authentication-metrics.json) for visualizing authentication metrics, including authentication rates, success/failure counts, failure reasons, and success percentage, all sourced from Prometheus.

@javidahmed64592 javidahmed64592 merged commit 1ac24e9 into main Nov 29, 2025
7 checks passed
@javidahmed64592 javidahmed64592 deleted the add-docker branch November 29, 2025 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants