Skip to main content

Command Palette

Search for a command to run...

1-Tier-App-Deployment

Published
2 min readView as Markdown

Intro:

vim app.py:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello World!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)  # Runs on port 5000

Escape:wq


vim requirements.txt:

flask==2.3.2

Escape:wq


vim Dockerfile:

# Base image
FROM python:3.9-slim

# Set working directory
WORKDIR /app

# Copy requirements and install
COPY requirements.txt .
RUN pip install -r requirements.txt

# Copy the app file
COPY app.py .

# Document that the app uses port 5000
EXPOSE 5000

# Run the app
CMD ["python", "app.py"]

Escape:wq


docker build -t 1-tier-app-deployment:v1 .
docker run -it -p 5000:5000 1-tier-app-deployment:v1

Open 5000

Copy public-ip:5000

Now, you can see our docker container is running

Ctrl + C


Docker PUsh:

docker login

Username: YOUR-DOCKERHUB-USERNAME

Password: YOUR-DOCKERHUB-PASSWORD

Login succeeded

docker tag 1-tier-app-deployment:v1 YOUR-DOCKERHUB-USERNAME/1-tier-app-deployment:v1

docker push YOUR-DOCKERHUB-USERNAME/1-tier-app-deployment:v1

You can see ss our image has has in dockerhub account

Create a new folder:

mkdir k8s-manifests
cd k8s-manifests

vim deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  labels:
    app: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: YOUR-DOCKERHUB-USERNAME/1-tier-app-deployment:v1 # 👈 Your Docker Hub username
        ports:
        - containerPort: 80

Escape:wq


vim service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 32402  # Assign the desired NodePort here
  type: NodePort  # Change type to NodePort

Escape:wq


vim app.py: → Hello World! -> Well done!

Docker Build & Push:

docker build -t 1-tier-app-deployment:v2 .
docker run -it -p 5000:5000 1-tier-app-deployment:v2

Now you can see well done has written show ss

Ctrl + C

Psh to dockerhub

docker tag 1-tier-app-deployment:v2 YOUR-DOCKERHUB-USERNAME/1-tier-app-deployment:v2
docker push YOUR-DOCKERHUB-USERNAME/1-tier-app-deployment:v2

Thanks

Thanks