小编Nat*_*son的帖子

Jenkins Pipeline的Docker插件 - uid 1005没有用户

我正在尝试从Jenkins管道中的Docker容器内执行SSH命令.我正在使用CloudBees Docker Pipeline插件来启动容器并执行命令,使用SSH代理插件来管理我的SSH密钥.这是我的Jenkinsfile的基本版本:

node {
  step([$class: 'WsCleanup'])
  docker.image('node').inside {
    stage('SSH') {
      sshagent (credentials: [ 'MY_KEY_UUID' ]) {
        sh "ssh -vvv -o StrictHostKeyChecking=no ubuntu@example.org uname -a"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

当SSH命令运行时,我收到此错误:

+ ssh -vvv -o StrictHostKeyChecking=no ubuntu@example.org uname -a
No user exists for uid 1005
Run Code Online (Sandbox Code Playgroud)

ssh jenkins jenkins-plugins docker

10
推荐指数
3
解决办法
5547
查看次数

如果 Docker Pipeline Plugin withRun 命令返回非零退出代码,如何使 Jenkins 构建失败?

我正在使用Docker Pipeline Plugin通过 Docker 容器执行构建脚本。我注意到,如果我的脚本在命令中执行时返回非零退出代码inside(),Jenkins 会将管道执行标记为失败。这个 Jenkinsfile 示例说明了该场景:

docker.image('alpine').inside() {
  sh 'exit 1'
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用该withRun()命令,类似的 Jenkinsfile 不会导致构建失败,即使该docker ps -l命令显示容器以非零状态退出:

node() {
  sh 'touch ./test.sh'
  sh 'echo "exit 1" >> ./test.sh'
  sh 'chmod 755 ./test.sh'

  docker.image('alpine').withRun("-v ${WORKSPACE}:/newDir", '/bin/sh /newDir/test.sh') {container ->
    sh "docker logs ${container.id} -f"
    sh 'docker ps -l'
  }
}
Run Code Online (Sandbox Code Playgroud)

withRun()如果容器以非零代码退出,是否有办法使构建失败?

jenkins jenkins-plugins docker jenkins-pipeline

5
推荐指数
1
解决办法
6447
查看次数

Cucumber Expressions:如何获得严格的多字替代文本?

我正在尝试将基于 RegExp 的 Cucumber v1 步骤定义转换为基于 Cucumber 表达式的 Cucumber v2.0.0-rc.9 步骤定义。我有几个使用正则表达式的步骤定义,如下所示:

/^I (?:am on|go to) the "([^"]*)" page$/
Run Code Online (Sandbox Code Playgroud)

这样,我可以在我的功能文件中写入以下任一内容:

I am on the "Login" page
I go to the "Home" page
Run Code Online (Sandbox Code Playgroud)

我想切换到 Cucumber 表达式,以便我可以开始使用自定义参数,但我找不到复制(?:am on|go to). 我想出的最好的方法是使用多个替代文本

I am/go on/to the "{captureString}" page
Run Code Online (Sandbox Code Playgroud)

但我不喜欢这种方法的是它允许编写如下无意义的步骤:

I am to the "Login" page
Run Code Online (Sandbox Code Playgroud)

我还尝试使用包含如下字符的单个可选文本:|

I (am on|go to) the "{captureString}" page
Run Code Online (Sandbox Code Playgroud)

但 cucumber-expressions-javascript 故意转义|字符,所以生成的 RegExp 看起来像这样:

/^I (?:am on\|go to)? the "([^"]*)" page$/ …
Run Code Online (Sandbox Code Playgroud)

javascript cucumber cucumberjs

4
推荐指数
1
解决办法
5287
查看次数