我有一个简单的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"