将变量从Jenkinsfile管道传递到docker-compose

wtzytmuj  于 2023-04-05  发布在  Jenkins
关注(0)|答案(1)|浏览(147)

我有一个简单的docker-compose文件,其中包含一个动态图像值,如下所示:

version: '3.8'
services:
    my-app:
        image: ${IMAGE}

我尝试从我的Jenkins管道中设置这个图像值,如下所示:

stage('deploy app') {
    steps {
        script {
            echo 'deploying the application...'

            def dockerComposeCmd = "docker-compose -f  docker-compose.yaml up --detach"

            sh "export IMAGE=test"
               
            sshagent(['ec2-server-key']) {                 
                sh "scp docker-compose.yaml ec2-user@***:/home/ec2-user"
                sh "ssh -o StrictHostKeyChecking=no ec2-user@*** ${dockerComposeCmd}"
            }
        }
    }
}

阶段完成以下错误,这意味着我无法通过图像。
ssh -o StrictHostKeyChecking=no ec2-user@***docker-compose -f docker-compose.yaml up --detach time=“2023-04- 04 T11:38:37 Z”level=warning msg=“未设置“IMAGE”变量。默认为空字符串。”service“java-maven-app”既没有指定镜像,也没有指定构建上下文:无效合成项目
如何将值从Jenkins传递到Docker compose?

fslejnso

fslejnso1#

您正在代理的本地shell中设置环境变量,但在远程计算机上运行命令。请尝试

def dockerComposeCmd = "IMAGE=test docker-compose -f  docker-compose.yaml up --detach"

相关问题