当前,它创建一个网络名称“ denpal_default”,并给出以下消息:
[1BRemoving network denpal_default
Network denpal_default not found.
Network test-network is external, skipping
我尚未对其进行测试,但是我认为,如果它构成了denpal_default网络并删除了它,则它无法同时运行多个版本。
我正在考虑一种解决方案,该解决方案将创建一个随机的COMPOSE_PROJECT_NAME =“ denpal-randomnumber”并以此为基础进行构建。
但是稍后如何在“验证”阶段的“ Docker构建”阶段使用变量集?
stage('Docker Build') {
steps {
sh '''
docker-compose config -q
docker network prune -f && docker network inspect test-network >/dev/null || docker network create test-network
COMPOSE_PROJECT_NAME=denpal docker-compose down
COMPOSE_PROJECT_NAME=denpal docker-compose up -d --build "$@"
'''
}
}
stage('Verification') {
steps {
sh '''
docker-compose exec -T cli curl http://nginx:8080 -v
COMPOSE_PROJECT_NAME=denpal docker-compose down
'''
}
}
答案 0 :(得分:0)
您可以在管道的sh命令中使用变量,因为它基本上是一个字符串,并利用groovy gstring(http://groovy-lang.org/syntax.html)
脚本管道示例,用于声明式使用环境变量
def random = UUID.randomUUID().toString()
sh '''
echo "hello ${random}"
'''
两个常见的陷阱,必须使用双引号(gstring,单引号是常规string),并且“ stage”是作用域的,因此将您定义为全局或同一阶段的var。