尽管本地可用镜像,Jenkins Docker Agent 还是“离线”了

问题描述 投票:0回答:1

我正在 EC2 实例上设置 Jenkins master,并尝试使用 Docker 根据我的构建的特定映像启动代理。我已经根据文档配置了所有内容,但遇到了一个问题:Jenkins 尝试使用 Docker 代理,但将其保持在“离线”状态,并且构建停留在“仍在等待安排任务”。详情如下:

设置:

  • Jenkins Master:在 EC2 实例上运行(Amazon Linux,使用 yum 进行包管理)。
  • Docker:在EC2实例上安装并配置,并确认Jenkins用户在Docker组中。
  • Docker 镜像:所需的镜像 (docker-python) 已在 EC2 实例上本地拉取。我正在使用 devopsjourney1/myjenkinsagents:python

詹金斯配置:

  • 在管理 Jenkins > 管理节点和云 > 配置云中,我使用 docker-python 标签添加了带有 Docker 代理模板的 Docker 云,并指定了 docker-python 映像。
  • 在 Jenkinsfile 中,我这样指定代理:
pipeline {
    agent {
        node {
            label 'docker-python'
        }
    }
    // additional stages...
}

  • 我还在 Jenkins 中安装了 Docker 插件以启用 Docker 代理功能。

问题:

当我运行构建时,Jenkins 日志显示如下消息:

Still waiting to schedule task
All nodes of label ‘docker-python’ are offline

Jenkins 似乎识别了该标签并尝试配置 Docker 代理,但它仍然处于离线状态,并且构建无法继续。

另外,Jenkins上的内置节点显示(不知道是否有帮助):

Disk space is below threshold of 1.00 GiB. Only 470.34 MiB out of 474.74 MiB left on /tmp.

注意:

我正在免费运行。

如有任何帮助,我们将不胜感激!

amazon-web-services docker jenkins amazon-ec2
1个回答
0
投票

如果“docker-python 镜像”是指 this 那么问题是它没有安装

java
,所以 Jenkins 无法在那里启动代理。 docker 插件实际上会警告您在配置模板时需要
java
。您可能会更幸运地使用 Jenkins 代理映像,例如 this python 之一。但话又说回来,你可能不会。如果您使用的是最新的 LTS Jenkins,那么您已经使用了 Java 17,并且官方代理仍在 Java 11 上。您最好的选择是制作自己的映像。添加正确的 Java 版本、您需要的工具,将其放在 ECR 上,它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.