gpt4 book ai didi

jenkins - 如何在 Jenkins 自由泳项目中使用码头容器?

转载 作者:行者123 更新时间:2023-12-04 02:58:22 24 4
gpt4 key购买 nike

我能够在 Jenkins 中创建一个“管道”项目,我在其中指定一个 Jenkinsfile 以使用 docker 容器来运行所有阶段,如下所示:

pipeline {
agent {
docker {
image '<registry>:<port>/<image name>'
registryUrl '<url>'
registryCredentialsId 'ARTIFACTORY_CREDS'

}
}
stages {
stage ('Environment') {
steps {
sh "env | sort"
}
}
}
}

这工作正常。但由于我希望将 Jenkins 发布管理流程用于 gradle 项目,因此我更愿意使用“自由式项目”项目。我不确定如何指定用于构建过程的 docker 镜像。似乎我们也无法提供 Jenkinsfile。任何指针都会有所帮助。我想复制与 Jenkinsfile 相同的行为。

Jenkins 版本:2.107.3

最佳答案

看看这个plugin - 它对我有用。

如果您使用 -v /var/run/docker.sock:/var/run/docker.sock 在容器内运行 Jenkins 本身还有一些额外的工作要做。就我而言,我不得不:

  • 确保在 Jenkins 中安装为 JENKINS_HOME 的卷可以通过我的构建器容器安装在相同的路径上。我正在使用 Docker 卷,必须迁移到外部卷才能工作。
  • 确保/tmp 目录 - 从 Jenkins 容器中看到的 - 与我的构建器容器看到的/tmp 相同。我可以通过使用额外的 -v /tmp:/tmp 启动 Jenkins 容器来实现这一点。 .这是必要的,因为插件通过写入该位置的临时 shell 脚本传递构建指令。
  • 如果您在 selinux 事件的情况下运行,请在构建环境定义中启用“以特权模式运行”选项,否则生成的工件将不会写回作业的 Jenkins 工作区。
  • 关于jenkins - 如何在 Jenkins 自由泳项目中使用码头容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51681402/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com