如何在Jenkins上编辑Docker图像并将其传递给Kubernetes YAML文件
基本上,我正在尝试在本地Jenkins上创建一个管道,创建一个图像,然后发送到Docker Hub。然后,我将在本地Kubernetes(服务器IP:10.10.10.4)上部署此映像 下面是Jenkins管道脚本如何在Jenkins上编辑Docker图像并将其传递给Kubernetes YAML文件,jenkins,kubernetes,yaml,jenkins-pipeline,Jenkins,Kubernetes,Yaml,Jenkins Pipeline,基本上,我正在尝试在本地Jenkins上创建一个管道,创建一个图像,然后发送到Docker Hub。然后,我将在本地Kubernetes(服务器IP:10.10.10.4)上部署此映像 下面是Jenkins管道脚本 docker build -t test123/demo:$BUILD_NUMBER . docker login --username=testuser --password=testpass docker push test123/demo:$BUILD_NUMBER ssh
docker build -t test123/demo:$BUILD_NUMBER .
docker login --username=testuser --password=testpass
docker push test123/demo:$BUILD_NUMBER
ssh -tt root@10.10.10.4 'kubectl apply -f hybris-deployment.yaml'
所以问题是,;我可以用$BUILD_编号成功标记图像并推送到Docker hub。然后我必须在Kubernetes服务器的YAML文件中使用这个$BUILD_编号并部署它
但是我不能把这个$BUILD\u号传递给Kubernetes服务器。不知何故,我应该用ssh命令发送这个内部版本号,并在YAML文件中将其用作标记
知道我该怎么做吗?
谢谢 您创建的管道类似于 如果您deployment.yaml文件如下
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: test-image
labels:
app: test-image
spec:
selector:
matchLabels:
app: test-image
tier: frontend
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: test-image
tier: frontend
spec:
containers:
- image: TEST_IMAGE_NAME
name: test-image
ports:
- containerPort: 8080
name: http
- containerPort: 443
name: https
在管道中,您可以在部署中更改映像并替换此部件。yaml
sed -i "s,TEST_IMAGE_NAME,gcr.io/$PROJECT_ID/$REPO_NAME/$BRANCH_NAME:$SHORT_SHA," deployment.yaml
因此,这个命令将替换部署.yaml中的第行,这样图像URL将更新,您可以应用yaml文件
您可以在此处看到jenkin文件的示例:
整个项目链接:对不起,我不明白。例如,第一个管道命令应该是这样的?“docker build-t test123/”sed-i“s,TEST_IMAGE_NAME,gcr.io/$PROJECT_ID/$REPO_NAME/$BRANCH_NAME:$SHORT_SHA,”。给我一个最简单的答案。@yatta检查一下:你还有什么问题吗。