docker - 如何在 jenkins ssh-slave 节点上运行的声明性管道中使用代理 docker?
问题描述
我将 jenkins master 和 slave 作为 docker 容器运行。我已经使用标签为“worker”的 jenkins/ssh-slave 图像设置了一个从节点。我可以在工作节点上成功运行我的管道。但是,当我尝试使用 Jenkinsfile 运行 docker build 命令时,出现错误docker: not found
。
pipeline {
agent { label 'worker' }
tools {nodejs "node"}
stages {
stage ('Build APP') {
steps {
echo 'BUILDING APPLICATION'
sh 'npm install'
}
}
stage ('Create Package') {
steps {
script{
echo 'BUILDING DOCKER IMAGE'
docker.build("package${env.BUILD_NUMBER}")
}
}
}
stage('Package Test') {
agent { docker }
steps {
echo 'RUNNING IMAGE IN CONATAINER'
sh "docker run -p 5050:4000 -d package${env.BUILD_NUMBER}"
echo 'CHECKING HEALTH STATUS'
script {
try {
sh "curl -s --head --request GET http://127.0.0.1:5050/ | grep '200'"
echo 'Health Check Passed!'
} catch(Exception e) {
echo "Health Check Failed!"
}
}
}
}
在第三步“包测试”中,我已将代理 docker 放入文件中,但它似乎不起作用。如何将代理 docker 放置在声明性管道中?
解决方案
推荐阅读
- java - 如何打印特定列的值
- forms - 无法在表单中同时发送文件和对象
- azure - 如何在 azure 资源模板中编写带有新警报的 webtest?
- scala - Scala Spark DataFrame Map Encoder 非原始类型
- c# - 使用 .Net Core 2.2 在 Linux 操作系统中出错 - 已达到配置的 inotify 实例数量的用户限制 (128)
- python-3.x - 尽管对目标变量和特征变量进行了标签编码,但创建混淆矩阵时出错
- c++ - 如何在 C++ 中读取输出
- laravel - Laravel:将多维数组转换为集合
- java - 无法在 java maven 应用程序中找到请求的目标 google recaptcha 的有效认证路径
- php - 注释路由页面子结构匹配两个路由