在Dockerfile里运行“From ..”docker镜像

我正在构build一个构buildJenkins的映像,我试图在运行时使用Jenkins上的插件,所以,我需要在插件执行之前运行Jenkins。

我执行它像dockerbuild设-tdocker文件和我所获得的错误:

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

我认为问题是当插件被执行时,猜猜Jenkins正在运行,而不是。

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 

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

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

这是因为它试图检索插件列表时,我重写了plugins_info短路代码path:

 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的软件包pipe理器。另外,PyYAML在lib无法使用时会优雅地跳过编译。 所以你可能不需要那个。 我想这不会安装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)。