繁体   English   中英

docker容器作为jenkins的构建奴隶

[英]docker container as build slave for jenkins

我已经在同一台机器Ubuntu中安装了Jenkins和docker。

  • Ubuntu 17.10
  • 詹金斯版 2.73.3
  • Docker版本17.09.0-ce。

我正在尝试将jenkin docker容器设置为从属设备,以运行自动化测试套件。

我能够正确地在Jenkins中设置docker插件以旋转docker容器,并添加了一个docker模板,其中包含我为设置docker环境而创建的映像。

该映像是在Ubuntu托管的docker上构建的。

现在的问题是,当我从詹金斯(Jenkins)工作时。 它给出了一条错误消息(待定—詹金斯没有标签docker-slave)

詹金斯待审图片

当我在Ubuntu计算机上检查Jenkins日志时,看到以下错误消息

com.github.dockerjava.api.exception.NotFoundException: {"message":"pull access 
denied, "message":may require 'docker login'"}

在ubuntu机器中,我已经完成了docker登录。

我尝试从中构建容器的映像位于ubuntu本地,而不是推送到任何存储库,因此为什么要尝试提取映像。

此外,什么是权限问题,我需要解决。 从jenkins构建作业时,jenkins用户将构建容器。 我是否需要在此添加其他内容。

在您的Jenkinsfile中,您可以将凭据与凭据插件一起使用

    // Login to registry
    withCredentials([usernamePassword(credentialsId: 'YOUR_ID_AD_DEFINED_IN_JENKINS', passwordVariable: 'PASS', usernameVariable: 'USER')]) {
        sh "docker login --username=$USER --password=$PASS your.registry.here.com"
    }

    // Build with correct pom version
    sh "docker build -t your.registry.here.com/your_image_here/your_image_name:${POM_VERSION} ."

    // Push
    sh "docker push your.registry.here.com/your_image_here/your_image_name:${POM_VERSION}"

    //pull
    sh "docker pull your.registry.here.com/your_image_here/your_image_name:${POM_VERSION}"

${POM_VERSION}只是我自己的代码的一部分,当然可以是您喜欢的任何版本

您还需要在Jenkins服务器中定义凭据。 可以在此处找到描述使用詹金斯凭证

检查您的docker模板配置,然后为“池策略”选择“从不池”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM