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