使用jenkins自动部署到minikube

smtd7mpg  于 2023-05-28  发布在  Jenkins
关注(0)|答案(1)|浏览(204)

我创建了一个简单的python flask应用程序,它打印“Hello World!!"。我正在使用Ubuntu,并在本地存储库中创建了必要的文件,如Dockerfile和Deployment文件。该应用程序在我的本地机器上运行良好,所以我将代码沿着所有必要的文件推送到我的GitHub存储库中,通过使用jenkins CI/CD管道自动部署到minikube。管道应该构建Docker镜像并将其推送到Docker Hub。我在本地机器上安装了minikube,运行良好。请解释创建管道脚本以部署应用程序的正确方法。
下面是源代码沿着所需的文件。
源代码-

from flask import Flask
app = Flask(__name__)
@app.route('/')

def index():
    return 'Web app using python flask'
app.run(debug=True , host='0.0.0.0', port=5000)

部署文件-

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello-app
  template:
    metadata:
      labels:
        app: hello-app
    spec:
      containers:
        - name: hello-app
          image: jeetlinux/docker-demo:v1

          ports:
            - containerPort: 5000
            
---
apiVersion: v1
kind: Service
metadata:
  name: hello-app
spec:
  selector:
    app: hello-app
  ports:
    - name: http
      port: 80
      targetPort: 5000
  type: LoadBalancer

Dockerfile-

FROM python:3.9-slim-buster
WORKDIR /app
COPY . /app
RUN pip3 install -r requirement.txt
CMD python3 hello.py

如何编写CI/CD管道来自动化构建和部署。请用建议和例子解释。每次我尝试构建它都失败了。无法解决它。
Github repo,其中的文件是:https://github.com/Biswajit1693/CI-CD-deployment

3gtaxfhh

3gtaxfhh1#

你可以在本地机器上设置一个Jenkins示例,并让它定期轮询GitHub存储库,看看是否有任何新的更改。请注意,虽然使用webhook会更有效,因为它可以通知Jenkins而不是Jenkins必须不断轮询,但您的Jenkins示例将位于本地机器上,除非您将其暴露于互联网,否则GitHub无法访问它。因此,Jenkins示例轮询repo的方法更有意义。
一旦构建被触发,您可以简单地使用kubectl命令将应用程序部署到minikube集群。Jenkins和minikube都运行在同一台机器上,Jenkins应该可以在本地访问kubeconfig,这意味着您不必执行任何额外的步骤来访问集群。

相关问题