0

我正在构建一个构建 Jenkins 的图像,并且我尝试在 Jenkins 运行时使用插件,因此,我需要在执行插件之前运行 Jenkins。

我像 docker build -t dockerfile 和我得到的错误一样执行它:

jenkins.JenkinsException:请求错误:[Errno 99] 无法分配请求的地址

我认为问题是当插件被执行时它猜测詹金斯正在运行而不是。

FROM foxylion/jenkins
MAINTAINER Mishel Uchuari <dmuchuari@hotmail.com>

RUN /usr/local/bin/install-plugins.sh workflow-remote-loader workflow-aggregator build-pipeline-plugin

ENV JENKINS_USER replicate
ENV JENKINS_PASS replicate


USER root
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get install -y apt-utils
RUN apt-get install -y python-pip
RUN apt install -y linuxbrew-wrapper
RUN useradd someuser -m -s /bin/bash
USER someuser
RUN chmod -R 777 /home/someuser
RUN brew install libyaml
USER root
RUN apt-get install build-essential
RUN apt-get -y update && apt-get -y upgrade

RUN pip install jenkins-job-builder==2.0.0.0b2
RUN pip install PyYAML python-jenkins

RUN mkdir /etc/jenkins_jobs/
COPY jenkins_jobs.ini /etc/jenkins_jobs/
COPY scm_pipeline.yaml /etc/jenkins_jobs/
RUN jenkins-jobs --conf /etc/jenkins_jobs/jenkins_jobs.ini update /etc/jenkins_jobs/scm_pipeline.yaml
4

1 回答 1

0

在 Docker 下使用它时,我自己也遇到了同样的问题:

文件“/src/.tox/py27/local/lib/python2.7/site-packages/jenkins_jobs/builder.py”,第 124 行,在 get_plugins_info 中引发 e JenkinsException:请求错误:[Errno 99] 无法分配请求的地址

这是在它尝试检索插件列表时引起的,我重写plugins_info以短路代码路径:

jjb = JenkinsJobs(args=['test', config_dir, '-o', output_dir])
jjb.builder['plugins_info'] = []  # prevents 99 cannot assign requested address
jjb.execute()

我在 Debian Jessie 上遇到了 python 2.7.9 的问题。如果我没记错的话,以后的 python 版本(例如 Debian Stretch 的 2.7.13)不再是问题。

(我遇到问题的补丁): https ://gerrit.wikimedia.org/r/#/c/380929/8/tests/test_integration.py

RUN brew install libyaml

brew是 Mac OS X 的包管理器。当 lib 不可用时,PyYAML 也会优雅地跳过编译。所以你可能不需要那个。而且我想它可以在不安装的情况下工作build-essential

RUN pip install jenkins-job-builder==2.0.0.0b2 RUN pip install PyYAML python-jenkins

我很惊讶您明确安装了 PyYAML 和 python-jenkins。假设安装 jenkins-job-builder 应该安装所有依赖项(例如 PyYAML 和 python-jenkins)。

于 2017-12-14T07:51:55.367 回答