Tag: jenkins

jenkins作为docker集装箱运行时无法访问互联网

我正在运行jenkinsdocker的形象 。 它启动时,抱怨说不能访问互联网。 这是我如何运行它: docker pull jenkins mkdir jenkins-shared-volume docker run -d -p 49001:8080 -p 50000:50000 -v jenkins-shared-volume:/var/jenkins_home -t –name jenkins jenkins 然后jenkins实例在http:// localhost:49001上运行 。 但它有连接问题: 离线此Jenkins实例似乎处于脱机状态。 有关在没有Internet连接的情况下安装Jenkins的信息,请参阅离线Jenkins安装文档。 您可以select继续configuration代理或跳过插件安装。 我的系统中没有代理(家用笔记本电脑)。 我想这可能是一个不起眼的docker问题,但是: 我找不到任何这个问题的参考 由于这是通常的方式,人们将运行jenkinsdocker形象,我觉得这是令人惊讶的是,这不是开箱即用 难道我做错了什么? 编辑 只是为了确保docker集装箱可以直接访问互联网: docker exec -it jenkins /bin/bash jenkins@4ef4944a7cb7:/$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: icmp_seq=0 […]

如何以编程方式在jenkins作业configuration页面中设置github回购

我想每次生成一个新的Jenkins容器时,通过代码在http:// host-ip:8080 / job / my_project / configure jenkins页面中设置Github仓库URL。 我读了这可以通过replaceconfig.xml使用python-jenkins的reconfig_job函数来完成。 那么我将如何做到这一点?

jenkins:运行构build不configurationdocker奴隶

我使用docker-plugin 0.10.0运行Jenkins 1.609.1来configurationjenkins docker slave。 Docker是在Ubuntu 14.04上运行的1.0.1。 我在https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin(“Shortcut:Pulling a Docker image”)上创build了一个基于evarga/jenkins-slave每个指令的定制evarga/jenkins-slave镜像。 在我的Jenkinsconfiguration中, 将“Docker”添加到“Cloud”区域 指向本地docker的URL http:// localhost:4243 /,并且也正确地configuration了docker(我可以运行“Test connection”并且返回“1.0.1”) 使用supervisord创build一个自定义的my/jenkins:0.1 ( my/jenkins:0.1 )图像,在里面运行SSH,MySQL,Postgres,ElasticSearch,PHP和NodeJS 手动运行容器,我可以与用户jenkins / jenkins SSH里面 我也给容器密码sudo权限的jenkins用户 我已经添加了一个docker图像到“Doc​​ker模板”(如上: my/jenkins:0.1 ),并通过“Docker SSH启动器”提供启动方法 在作业configuration中: 我选中了“Docker容器” 加了我的标签 源代码通过git checkout连接 当我运行这个工作时,只执行git checkout,但不是在slave上,而是直接在主机上: Started by user MyUser Building in workspace /var/lib/jenkins/workspace/Project-Core > git rev-parse –is-inside-work-tree # timeout=10 Fetching changes from […]

jenkinsCDpipe道Kubernetes

我打算有一个与Jenkins的CDpipe道,接受我的应用程序,发布docker图像到我的私人docker存储库。 我想我知道该怎么做。 我不确定Kubernetes的部分。 我想要把这个镜像部署到我的私有Kubernetes集群(目前是1 Master&1 Slave)。 问题:安装kubectl和docker的Jenkins Slave是否需要成为Kubernetes集群的一部分才能触发部署? 我怎样才能触发这个部署?

jenkins上使用docker插件 –

我试图使用Jenkins上的docker插件来运行现有容器的实例。 Docker版本1.6.0,版本4749651 我select了“创build容器”input图像名称的图像ID,并尝试了一个主机http://172.16.42.43:4243 ,也尝试了一个空的主机。 我不断收到这个错误: ERROR: Build step failed with exception java.lang.NullPointerException: uri was not specified at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204) at com.github.dockerjava.core.DockerClientConfig$DockerClientConfigBuilder.withUri(DockerClientConfig.java:406) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.createDockerClient(DockerBuilder.java:123) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.getDockerClient(DockerBuilder.java:201) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder.perform(DockerBuilder.java:71) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779) at hudson.model.Build$BuildExecution.build(Build.java:205) at hudson.model.Build$BuildExecution.doRun(Build.java:162) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537) at hudson.model.Run.execute(Run.java:1744) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:374) Build step 'Execute Docker container' marked build as failure 有人能告诉我如何解决? 另外,如果有人使用过这个插件,请让我知道这是否有效。 […]

在预先构build的docker容器(jenkins)中更改用户的uid

我对docker工人来说是新的,所以如果这是一个相当明显的过程,那么我就会为这个愚蠢的问题道歉。 我正在build立一个使用jenkins镜像的持续集成服务器。 我做了一个docker pull jenkins ,并创build了一个用户jenkins ,允许我将容器中的/var/jenkins_home到我的主机的/var/jenkins_home (也由jenkins:jenkins用户拥有)。 问题是容器似乎用uid 102来定义jenkins用户,但是我的主机有1002的jenkins用户,所以当我运行它时,我得到: docker run –name jenkins -u jenkins -p 8080 -v /var/jenkins_home:/var/jenkins_home jenkins /usr/local/bin/jenkins.sh: line 25: /var/jenkins_home/copy_reference_file.log: Permission denied 我只是简单地将主机的jenkins用户的uid设置为/etc/passwd 102,但是这个uid已经被sshd使用了。 我认为解决scheme是改变容器来使用uid 1002,但我不知道如何。 编辑 实际上,主机上的用户102是messagebus,而不是sshd。

处理docker和Jenkins中的大型二进制文件(3 GB)

我在我的docker文件中使用谷歌模型(二进制文件:大约3GB),然后使用jenkins生成和部署在生产服务器上。 其余的代码是从bitbucket回购。 从docker文件中下载并解压文件的示例行。 它只会发生一次,因为这个命令将被caching。 FROM python:2.7.13-onbuild RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install –assume-yes apt-utils RUN apt-get update && apt-get install -y curl RUN apt-get update && apt-get install -y unzip RUN curl -o – https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz \ | gunzip > /usr/src/app/GoogleNews-vectors-negative300.bin 当我在本地机器上构build并运行Docker时,一切正常。 但是,当我通过修补版本将这些更改通过Jenkins推送到生产服务器时,我的构build过程最终失败。 设置,构build和testing阶段工作正常。 但是,构build后阶段失败。 (构build过程推动更改回购,并根据日志,在docker文件中的所有命令也运行良好。)之后发生的事情,当我看到日志时,我得到以下错误。 18:49:27 654f45ecb7e3: […]

在jenkins docker容器中执行docker host命令

我有一个运行jenkins的docker集装箱。 我想在这个容器内启动其他容器,所以在这个容器外面。 我已经尝试启动我的jenkins控制器: docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/bin/docker (如此处所写: https : //jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/ ) 但是当我的容器内部试图运行一个Docker命令时,我有一个典型的消息 FATA[0000] Get http://%2Fvar%2Frun%2Fdocker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: connect: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS? 没有办法在这个容器内运行docker命令.. 我已经试过,没有–privileged =真,它仍然无法正常工作。 如果你有任何想法!

Jenkins 2.0:在Docker容器中运行SBT

我有以下Jenkinsfile : def notifySlack = { String color, String message -> slackSend(color: color, message: "${message}: Job ${env.JOB_NAME} [${env.BUILD_NUMBER}] (${env.BUILD_URL})") } node { try { notifySlack('#FFFF00', 'STARTED') stage('Checkout project') { checkout scm } scalaImage = docker.image('<myNexus>/centos-sbt:2.11.8') stage('Test project') { docker.withRegistry('<myNexus>', 'jenkins-nexus') { scalaImage.inside('-v /var/lib/jenkins/.ivy2:/root/.ivy2') { c -> sh 'sbt clean test' } } } if (env.BRANCH_NAME […]

Jenkinsfile:在Docker容器中运行sh步骤时拒绝了权限

我运行一个简单的Jenkinsfile有困难 – 例如 pipeline { agent { label 'ssh-slave' } stages { stage('Shell Test') { steps { sh 'echo "Hello World"' } } } } 主人Jenkins的日志文件显示容器已成功启动,但构build作业崩溃,并显示一条消息 sh: 1: /home/jenkins/workspace/pipeline@tmp/durable-34c21b81/script.sh: Permission denied 这里是我们configuration/计算出来的一些额外的东西: 我们正在使用RHEL的虚拟机上运行代理 我们使用Jenkins的Docker Plugin来启动/pipe理单独的Jenkins代理上的容器 我们在Jenkins插件中使用Connect with ssh方法启动Docker容器,并使用jenkinsci / ssh-slave Docker镜像 Jenkins在Docker容器中使用root用户(至less/home/jenkins/…所有文件都是以root身份创build的 当我们在pipe道和docker exec…添加一个sleep步骤到正在运行的容器时,如果我们试图用./script.sh来运行它(即使我们设置了正确的文件模式与之前的chmod +x script.sh ) – 我们也得到sh: 1: permission denied 。 但是我们可以运行脚本,如果我们使用sh script.sh […]