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



我有一个简单的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-04t11:38:37;level=warning msg="变量未设置。默认为a空字符串!"服务"java-maven-app"既没有图像也没有指定的构建上下文:无效的组合项目

如何将一个值从Jenkins传递给docker compose?

您在代理的本地shell中设置环境变量,但是在远程机器上运行该命令。试着

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