jenkins - 用于 Kubernetes 的 Jenkins 插件的容器问题
问题描述
我在 jenkins 中使用 kubernetes 插件。我正在尝试将它与 Pipeline 和 Freestyle 作业一起使用。作业正在运行,但仅在具有jnlp-slave:3.35-5-alpine
我没有在任何地方定义的名称的容器中运行。
即使在管道中定义图像也没有任何问题,并且仍然在该jnlp-slave:3.35-5-alpine
图像中运行。这是我的管道示例:
pipeline {
agent none
stages {
stage ('Stage as dsl') {
agent {
kubernetes {
cloud 'kubernetes'
label 'jnlp-slave'
containerTemplate {
name 'jnlp-slave'
image 'jnlp-slave'
}
}
}
steps {
sh '''
pwd; \
whoami; \
uname -a
'''
}
}
}
}
我的错误在哪里?
解决方案
我找到的解决方案是不为集群定义任何标签。
在我的jenkinsfile
示例中,我正在测试使用 diffrend docker 图像,如下所示:
工作解决方案
def podTemplate = """
apiVersion: v1
kind: Pod
spec:
containers:
- name: java-slave
image: myrepo/java-slave:latest
command:
- sleep
args:
- infinity
- name: jenkins-slave-dind
image: myrepo/jenkins-slave-dind:latest
command:
- sleep
args:
- infinity
volumeMounts:
- name: dockersock
mountPath: /var/run/docker.sock
volumes:
- name: dockersock
hostPath:
path: /var/run/docker.sock
"""
pipeline {
agent {
kubernetes {
yaml podTemplate
defaultContainer 'java-slave'
}
}
stages {
stage('Main') {
steps {
sh 'curl google.com'
}
}
stage ('Stage as dsl 4'){
steps {
container('jenkins-slave-dind') {
sh '''
docker ps -a
'''
}
}
}
}
}
推荐阅读
- c - 为什么我的代码中出现分段错误?无法调试,请解释错误
- python - 将指标/结果组合成一个数据框 python
- java - 请求标头编码更改为空正文
- nativescript - 如何仅更新项目中的“nativescript-vue”包?
- reactjs - React UI - 从文件浏览器获取文件的绝对路径
- google-cloud-firestore - 检查用户名是否存在于firestore中并返回true swiftUI
- python - 必须运行 glob.glob 两次才能工作(Python3)
- sql - oracle CASE WHEN 语句中如何查找重复记录
- r - for 循环中的嵌套 if 语句,“条件长度 > 1 且仅使用第一个元素”
- angular - 如何将存储(用户会话)数据传递到侧菜单离子 5?