Tag: jenkins

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 […]

在容器中运行Jenkins Job

我有几个Jenkins作业和几个Jenkins从节点(物理机器)。 这些奴隶都运行docker1.12.1。 我想要这些工作任何这些奴隶上运行。 由于这些作业具有不同的环境要求,因此我认为可以为每个不同的环境创build泊坞窗图像,然后在作业“内部”指定作业将运行的容器。 这可能吗? 即在这些工作中指定一个特定的docker集装箱,我希望这些工作运行? 在工作结束时,集装箱将被销毁,只有工件和报告将保留。 在jenkins有几个docker插件,但我还没有find一个正是我想要的东西。

如何finddockerrestAPI的url?

我已经安装了jenkins的docker构build步骤插件。 文档告诉我: Name :Choose a name for this Docker cloud provider Docker URL :The URL to use to access your Docker server API (eg: http://172.16.42.43:4243) 如何find我的url到其余的API(我的主机上安装了docker)

ENTRYPOINT Docker指令在扩展图像时如何反应

我想知道遗产发生时是否会对ENTRYPOINT指令作出反应: 比方说,我有一个叫 jenkins的图片 FROM java:8-jdk RUN … ENTRYPOINT ["/bin/tini", "–", "/usr/local/bin/jenkins.sh"] 通过运行这个图像, ENTRYPOINT指令将启动并按预期安装应用程序 现在让我们来说说我想用一个新的Dockerfile来扩展这个图片 ,我把它称为: jenkins-custom FROM jenkins # enable start tls RUN echo "JENKINS_JAVA_OPTIONS=\"-Dmail.smtp.starttls.enable=true\"" >> /etc/default/jenkins RUN chown jenkins:docker /etc/default/jenkins 我应该考虑: jenkins入口点在我的新行后触发。 在我的新行之前,入口点会被触发。 入口点不会被触发。 在我的例子中,我想在默认的Jenkins泊坞窗图像中激活STARTTLS,我应该重新启动第二个图像的过程吗? 谢谢大家 ;)

让Jenkins在更新图像时“更新”正在运行的Docker容器的最佳方法

我们的组织对于Docker和Jenkins来说是比较新的。 我们正在开发从(Java)源代码更新到运行应用程序的CIpipe道。 目前Jenkins正在使用Cloudbees Docker Build and Publish插件在成功构build之后更新映像。 它只是拉取基础(JBoss)的图像,并使用刚刚构build的应用程序的WAR文件(通过Maven)更新它。 我们正在使用“通过SSH发送命令”构build步骤,以SSH方式进入服务器(当前正在运行的)容器处于打开状态,停止具有指定图像ID的容器,然后重新拉动并随后运行该容器。 但是,我知道必须有一个更好,更优雅的方式来做到这一点。 令人惊讶的是,我很难find如何做文档。 任何意见,将不胜感激。 请告诉我。