我正在远程代理节点上运行Jenkins管道作业,在该节点上它执行docker-compose来构建我的应用程序。在运行管道时,它失败并出现以下异常。 docker-compose安装在远程节点上,并且对可执行文件给予完全权限。我也在我的管道中设置了PATH。有人能帮我吗?
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploy to staging)
[Pipeline] echo
PATH is: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin
[Pipeline] sh
+ /usr/bin/docker-compose up --build -d
/var/jenkins_home/workspace/calc_multi@tmp/durable-060052a9/script.sh: 1: /var/jenkins_home/workspace/calc_multi@tmp/durable-060052a9/script.sh: /usr/bin/docker-compose: not found
[Pipeline] }
[Pipeline] // stage
来自我的管道的片段
pipeline {
environment {
registry = "sudheshpn/calculator"
registryCredential = 'dockerhub'
PATH = "$PATH:/usr/bin"
dockerImage = ''
}
stage("Deploy to staging") {
steps {
echo "PATH is: $PATH"
sh "/usr/bin/docker-compose up --build -d"
}
}
远程代理配置
root@ci-cd:/usr/bin# ls -ltr docker-compose
-rwxrwxrwx 1 root root 420 Apr 23 11:41 docker-compose
root@ci-cd:/usr/bin# pwd
/usr/bin
root@ci-cd:/usr/bin# docker-compose -v
docker-compose version 1.21.0, build unknown
从远程节点手动执行正在运行
root@ci-cd:/var/jenkins_home/workspace/calc_multi# /usr/bin/docker-compose up --build -d
Building calculator
Step 1/7 : FROM williamyeh/java8
---> 00bc163fa009
Step 2/7 : ADD build/libs/calculator-0.0.1-SNAPSHOT.jar app.jar
---> Using cache
---> 31096985299e
我怀疑你需要在管道中定义远程代理节点标签,否则你应该在Jenkins主机上安装docker-compose
-
pipeline {
agent { label 'ci-cd' }
stages {}
}
docker compose安装在远程节点上,但您定义的代理是docker。是docker-compose安装在docker sudheshpn/calculator
上吗?
我个人不会建议在管道中使用docker-compose。它不是CI的开发工具。对于CI,我会单独使用docker或jenkins kubernetes插件来同时部署容器容器