// the find
LondheShubham153/two-tier-flask-app
A small Flask app that stores user-submitted messages in MySQL and shows them on a page, packaged as a teaching setup for Docker Compose and then Kubernetes on EKS. It's aimed at people learning how a two-container app moves from a laptop to a cluster. Forks outnumber stars roughly fourteen to one, which tends to mean students copying it for a course rather than people maintaining it.
- The same app ships four ways: docker-compose, hand-run docker commands, plain k8s manifests, and EKS manifests with a Jenkinsfile. Watching one codebase move through all of them is the useful part.
- The non-compose instructions create a user-defined network so the containers resolve each other by name. That is the detail beginners usually miss, and the README spells it out.
- Single-stage and multistage Dockerfiles sit side by side, so the image size difference is easy to measure yourself.
- Credentials are hardcoded in the README: MYSQL_ROOT_PASSWORD=admin, with the app connecting as root. That is the wrong pattern to teach, and anyone who copies the manifests carries it into a cluster.
- The base image is mysql:5.7, which reached end of life in October 2023. It no longer gets security patches.
- The README has you paste SQL into phpMyAdmin to create the table. message.sql is in the tree, but nothing ties it to startup, so a fresh environment fails until someone runs it by hand.
- The /insert_sql route is a raw SQL write exposed over HTTP. The README warns about injection and then ships the endpoint anyway. The last push was February 2025, and I see no test directory in the tree.