使用声明性 Jenkinsfile 在 jenkins 中拉取 docker 图像

Pulling docker image in jenkins with using declarative Jenkinsfile

我已经使用应该执行的 Jenkinsfile 配置创建了 jenkins 作业 在 docker 容器中。 从 docker 集线器中拉取 docker 图像时出现问题:node:16-stretch 我收到如下错误:来自守护程序的错误响应:获取 https://registry-1.docker.io/v2/:未经授权:不正确的用户名或密码

下面我展示了我的 Jenkinsfile 的一部分,负责以声明方式拉取 docker 图像:

stages {
        stage('Docker container initialize') {
             agent {
                docker {
                   image 'node:16-stretch'
                   reuseNode true
                }
             }
             steps {
                   sh 'node --version'
                   sh 'yarn --version'
             }
         }

我需要 运行 节点版本 >=14.18.0 和 yarn >=1.22.0 的作业。图片node:16-stretch 满足这个要求。 我应该如何正确配置我的 jenkinsfile 才能拉出上面的图像?我应该在作业配置中还是在 Jenkinsfile 脚本中添加一些凭据?我将不胜感激:)

您需要在 Jenkins 服务器的凭据部分添加注册表凭据。您还应确保此管道有权访问这些凭据。完成该任务后,您可以访问 agent 指令中的凭据,例如:

agent {
  docker {
    image                 'node:16-stretch'
    reuseNode             true
    registryUrl           'https://registry-1.docker.io'
    registryCredentialsId 'myRegistryCredentials'
  }
}

其中 myRegistryCredentials 是您为注册表添加的凭据的名称。