This is a simple Flask app with an HTML template that shows a user profile, serves static images, and is containerized with Docker. It also includes full deployment on Kubernetes via Minikube.
python3 -m venv venv
source venv/bin/activate
pip install Flask
python app.pydocker build -t flask-profile-app .
docker run -p 5000:5000 flask-profile-app
ldocker login
docker tag flask-profile-app <your-dockerhub-username>/flask-profile-app:latest
docker push <your-dockerhub-username>/flask-profile-app:latest
minikube start
eval $(minikube docker-env)
docker build -t flask-profile-app .
Skip Docker Hub push if you’re using Minikube’s Docker directly.
apiVersion: apps/v1
kind: Deployment
metadata:
name: flask-deployment
spec:
replicas: 1
selector:
matchLabels:
app: flask-app
template:
metadata:
labels:
app: flask-app
spec:
containers:
- name: flask-container
image: flask-profile-app
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: flask-service
spec:
type: NodePort
selector:
app: flask-app
ports:
- port: 5000
targetPort: 5000
nodePort: 30001
kubectl apply -f deployment.yaml
kubectl get pods
minikube service flask-service
Or manually get Minikube IP:
minikube ip
Then open in browser:
http://<minikube-ip>:30001
Bernard (@bernardev254)