Tag: jenkins

问:为什么在jenkins随机获取'sudo:没有tty present,没有askpass程序指定'错误?

我们在Docker容器中运行Jenkins,并使用Docker-Docker方法。 据了解,我们补充道: jenkins ALL=NOPASSWD: ALL 到/ etc / sudoers。 http://container-solutions.com/running-docker-in-jenkins-in-docker/ 如何解决'sudo:没有tty目前没有askpass程序指定'错误? 我们面临的问题是,执行第一个make命令时,我们的pipe道作业会随机失败: sudo -E make login 与错误: sudo: no tty present and no askpass program specified 为什么我们有时只会遇到这个错误?

Docker版本无法下载Jenkins工具

我想得到一些一般的指导方针如何解决这个问题。 问题在于容器内的构build无法下载Jenkins中全局工具configuration中定义的Maven工具。 从相同的图像构build的Gradle构build,可以从Maven工具没有问题的同一个存储库下载依赖项。 我甚至试图运行Maven的二进制文件预先安装在图像和构build开始,但未能从中央Maven回购下载依赖。

jenkins背后nginx反向代理

我试图让一个jenkins容器(docker)在nginx反向代理的后面。 对于https://example.com/这个path,它可以正常工作,但是当我将参数添加到pathhttps://example.com/jenkins时,它会返回502 Bad Gateway。 jenkins的docker容器像这个docker容器运行-d -p 127.0.0.1:8080:8080 jenkins / jenkins 这是我的代码, server { listen 80; root /var/www/html; server_name schoolcloudy.com www.schoolcloudy.com; location / { proxy_pass http://localhost:8000; } } # Virtual Host configuration for example.com upstream jenkins { server 127.0.0.1:8080; } server { listen 80; server_name jenkins; location /jenkins { proxy_pass http://jenkins; proxy_redirect 127.0.0.1:8080 https://schoolcloudy.com/jenkins; } }

在将本地主机docker二进制文件挂载到docker映像时,docker发生错误

我将docker安装到mac并在Docker容器中运行Jenkins; 那么我希望在Jenkins工作中启动主机docker镜像,所以我想把主机(osx)docker映射到我的Jenkins镜像上。 在这里,我得到了与安装docker二进制文件的问题。 我的安装或docker-compose文件有什么问题吗? 或者这在osx中​​不被支持? 我以前可以在ubuntu主机上做到这一点。 $ cat docker-compose.yml version: '2' services: jenkins: container_name: jenkins image: jenkins/jenkins:lts ports: – '8080:8080' – '50000:50000' volumes: – /Users/chaoshi/docker-all/CI-local/jenkins_home:/var/jenkins_home – /var/run/docker.sock:/var/run/docker.sock – /usr/local/bin/docker:/usr/bin/docker $ docker-compose up Removing jenkins Recreating 3a243d8a4dfc_3a243d8a4dfc_jenkins … Recreating 3a243d8a4dfc_3a243d8a4dfc_jenkins … error ERROR: for 3a243d8a4dfc_3a243d8a4dfc_jenkins Cannot start service jenkins: Mounts denied: EOF ERROR: for jenkins Cannot […]

jenkinspipe道DOCKER_HOST

我需要在pipe道中运行一个docker-container 。 我的问题是,jenkins容器内没有可用的docker.sock 。 而实际上没有机会得到它。 但是我发现了一些使用Docker的作业: “注入环境variables到构build过程” – >“属性内容” 并configuration如下: DOCKER_HOST=tcp://<ip>:<port> DOCKER_CERT_PATH=/var/jenkins_home/certs 在我的理解,这相当于docker.sock和可用的插件,不是吗? 但是,我怎么能在一个(多)pipe道项目中使用它? 我已经尝试在我的笔记里面使用这个Block: environment { DOCKER_HOST = 'tcp://<ip>:<port>' DOCKER_CERT_PATH = '/var/jenkins_home/certs' } 但同样的问题: “docker:找不到”我可能有一个逻辑谬误。 希望有人可以帮忙。 否则,是否有可能创build一个包括docker.sock的jenkins-slave?

Docker容器不能在主机上写入

首先,我在这里找不到答案( 这是最接近的post )。 我有运行Ubuntu的EC2。 首先我安装了Jenkins,然后安装了Docker。 这不是“DonD”。 我的项目有一个Jenkinsfile,我正在运行一些docker命令。 它应该使用像gradle这样的docker容器,共享一个卷并构build项目。 最终的.war将在主机文件系统上。 问题是:容器内的gradle无法写入主机文件夹。 这是我的Jenkinsfile(无数尝试之一): #!/usr/bin/groovy node { checkout scm stage 'Gradle' sh 'sudo docker run –rm -v "$PWD":/api -w /api gradle gradle clean build –stacktrace' } Stacktrace重要的一行: Caused by: org.gradle.api.UncheckedIOException: Failed to create parent directory '/api/.gradle' when creating directory '/api/.gradle/4.3/fileHashes'

作为Jenkins Slave的Docker容器(构build代理)

我有一个jenkins大师在一个容器内部运行…我正在使用Docker容器作为Jenkins Slave(构build代理), 在一个separete虚拟机上运行我的CIpipe道。 这个Docker容器(构build代理)将在CIpipe道运行时创build; 。 一旦构build完成,Docker容器将被销毁。 为了达成这个: 我使用docker插件如下: 在这里input图像说明 这我的jenkinsfile代码: node('docker') { stage('Checkout Code') { checkout scm } stage('Build') { withMaven { sh 'mvn clean install' } } } 当我运行我的peline时,每件事情都是正确的: 但问题是关于构build结果(.war) 这个档案是转移到主工作区还是用容器销毁? 如果第二种情况,那么我怎样才能恢复build立结果,jenkins大师追求CI过程? [INFO] Installing /home/jenkins/workspace/Build_pipeline_team/target/Teams.war to /home/jenkins/.m2/repository/teams/Teams/1.0-SNAPSHOT/Teams-1.0-SNAPSHOT.war [INFO] Installing /home/jenkins/workspace/Build_pipeline_team/pom.xml to /home/jenkins/.m2/repository/teams/Teams/1.0-SNAPSHOT/Teams-1.0-SNAPSHOT.pom [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ———————————————————————— [INFO] Total time: 02:12 min […]

如何在基于alpine的docker容器上安装多个openjdk版本

目的:在高山容器上安装jdk7和jdk8 ,而通过envvariables只jdk7 。 问题:以任何顺序添加FROM openjdk:7-alpine和FROM openjdk:8-alpine确保最后一个覆盖前者。 所以,我只剩下1个安装,如'/usr/lib/jvm' 。 为什么我需要这个:我需要这个设置为Jenkins的奴隶容器。 现在,jenkins remoting jar只能在jdk8上运行。 所以,我需要它。 另外,因为我产生了一个需要jdk7作为默认jdk的项目的容器,我也需要这个。 我正在使用的DOCKERFILE: https : //github.com/ankurshashcode/docker-slave/blob/alpine/Dockerfile

Docker远程API + Docker组合-f选项

我正在使用Docker引擎API在-H选项的帮助下pipe理远程Docker实例。 我成功地configuration了远程守护进程接受来自外部的http请求,并且能够从本地机器连接到它并调用远程docker引擎。 现在我想用docker-compose工具来检查在远程主机上运行的项目。 在远程主机上,名为testproject的项目正在运行(以在docker -compose命令中使用-p参数设置自定义proj名称)。 testproject由docker -compose文件描述,其path为/opt/myproject/compose/docker-compose.yml。 当试图从我的本地机器检查docker-compose进程时使用以下命令: docker-compose -H tcp://${remote_ip}:2375 -p testproject ps 我不断收到这个错误: ERROR: Can't find a suitable configuration file in this directory or any parent. Are you in the right directory? Supported filenames: docker-compose.yml, docker-compose.yaml 所以我试图使用-f和–project-directory选项来指定远程docker-compose.yml文件的位置,但是恐怕这两个选项都与我的本地机器有关,因为我得到了“找不到文件“错误。 这是对的吗 ? (我在官方文档中没有find明确的答案)我该如何解决这个问题?

Jenkins的错误Pipeline将多个docker容器缠绕在黄瓜testing上,每个容器包含一个特征文件

尽pipe过去几个月来我们一直在使用piplelines,但我们一直坚持这个问题一周。 我们的目标是在我们的黄瓜testing套件中启动尽可能多的容器,并且同时运行这些testing(每个容器一个)。 以下是我们用下面的pipe道代码得到的错误: java.lang.UnsupportedOperationException:调用公共静态java.util.List org.codehaus.groovy.runtime.DefaultGroovyMethods.each(java.util.List,groovy.lang.Closure)在CPS转换封闭尚不支持(JENKINS -26481); 封装在@NonCPS方法中,或使用Java风格的循环 pipe道代码: def cucumberTestImage pipeline { agent any options { echo "options stuff" } stages { stage('Build & Deploy'){ steps { parallel ( SPA: { script { echo "deploying SPA app" } } } echo 'SPA JOB COMPLETED!!' }, Tests: { script { } //building docker image name cucumberTestImage […]