目前,当在jenkinsfile中运行docker.image(...)。inside时,jenkins以分离(守护进程)模式启动容器。有人可以帮助我如何让jenkins以交互模式运行容器吗?
我试着给#34; -it" docker.image(...).inside(-it)
中的选项,但我得到以下错误:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用staticMethod org.codehaus.groovy.runtime.ScriptBytecodeAdapter unaryMinus java.lang.Object
提前致谢。
答案 0 :(得分:1)
你不应该在Jenkins上以交互模式使用Docker容器。我不知道这是否可能,但即使它是,它只要等待用户输入就会阻止构建槽。而是使用无代理输入阶段来询问您要提供给Docker容器的参数:
pipeline {
agent none
stage('Ask for input') {
agent none
steps {
script {
env.MY_PARAMETER = input ...
}
}
}
stage('Run JMeter') {
agent { label 'docker' }
steps {
script {
// Pass MY_PARAMETER into Docker container
docker.image(...).inside("--env MY_PARAMETER ${env.MY_PARAMETER}") {
...
}
}
}
}
}