运行Jenkins管道时找不到docker-compose

问题描述 投票:0回答:2

我正在远程代理节点上运行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

docker jenkins docker-compose jenkins-pipeline
2个回答
0
投票

我怀疑你需要在管道中定义远程代理节点标签,否则你应该在Jenkins主机上安装docker-compose -

pipeline {
    agent { label 'ci-cd' }
    stages {}
}

0
投票

docker compose安装在远程节点上,但您定义的代理是docker。是docker-compose安装在docker sudheshpn/calculator上吗?

我个人不会建议在管道中使用docker-compose。它不是CI的开发工具。对于CI,我会单独使用docker或jenkins kubernetes插件来同时部署容器容器

© www.soinside.com 2019 - 2024. All rights reserved.