我有一个docker容器,它返回一个大于或等于0的值,如果我在本地运行容器,我会得到一个返回值:
docker build -t tmp -f Dockerfile .
id=$(docker run --rm -v /mnt/BARAT_Data1/Weather_Files/NOAA_Forecasts:/weather_dir tmp)
echo $id # Prints 0
我把这个放在我的jenkins脚本里:
stage("Run download process") {
when {
expression{currentBuild.currentResult == 'SUCCESS'}
}
steps {
sh """
docker rm -f sync_noaa || true
rm -rf ${WEATHER_DIR}/staging/*
"""
script {
env.NUM_PROCESSED=sh(script:'docker run --rm -v ${WEATHER_DIR}:/weather_dir ${DOCKER_TAG}', returnStdout: true).trim()
}
sh """
echo ${env.NUM_PROCESSED}
"""
}
}
但是,这是将env.NUM_PROCESSED
打印为null
。
我已经尝试了不同的方法来做这件事,从相关的问题,从一个shell命令设置一个jenkins环境变量的值,但我没有尝试过工作。
如何从docker run命令的返回值中获取环境变量的set值?
1条答案
按热度按时间stszievb1#
您可以通过添加以下内容来创建可变全局变量:
在
pipeline
之前。然后,您可以通过执行以下操作来修改和打印变量的值: