我有一个简单的 Jenkins 函数/过程:
def StartContainer() {
def SqlPort = BranchToPort[env.BRANCH_NAME]
bat "docker run -e \"ACCEPT_EULA=Y\" -e \"SA_PASSWORD=P@ssword1\" --name SQLLinux${env.BRANCH_NAME} -d -i -p $SqlPort:1433 microsoft/mssql-server-linux"
}
BranchToPort 完全按照我想要的方式执行,我遇到的问题是将它返回的值插入到以下对 bat 的调用中,我尝试了各种方法,这要么导致 groovy 脚本出现语言编译错误或在 -p 命令之后立即结束的 bat 命令。显然我在这里缺少一些非常简单的东西。
最佳答案
我的问题在于,Groovy 映射的作用域是在启动容器的方法的范围之外声明的,如果我将映射的声明移动到与启动容器的方法相同的方法中,它就可以工作。
关于jenkins - Jenkins bat 命令中变量的字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45634639/