Tag: jenkinsfile

Jenkinsfile自定义docker容器“无法findFROM指令”

我刚刚开始与Jenkinsfiles和Docker合作,所以如果这是明显的道歉。 我有一个包含一个Dockerfile和一个Jenkins文件的仓库。 Dockerfile只是通过添加一些依赖和构build工具来扩展一个基本的Ubuntu镜像(ubuntu:trusty)。 Jenkinsfile目前只为我构buildDocker容器: node('docker') { stage "Prepare environment" checkout scm docker.build('build-image') } 当我运行Jenkins构build时,输出日志显示Docker容器被成功创build,但是在它成功完成之前,我得到: Successfully built 04ba77c72c74 [Pipeline] dockerFingerprintFrom [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline [Bitbucket] Notifying commit build result [Bitbucket] Build result notified ERROR: could not find FROM instruction in /home/emackenzie/jenkins/workspace/001_test-project_PR-1-ROWUV6YLERZKDQWCAGJK5MQHNKY7RJRHC2TH4DNOZSEKE6PZB74A/Dockerfile Finished: FAILURE 我一直无法find任何指导,为什么我从互联网上得到这个错误,所以任何帮助将不胜感激 Dockerfile: FROM ubuntu:trusty MAINTAINER Ed Mackenzie # […]

使用Docker与Jenkins上的“vendor”目录构buildGo应用程序

我试图build立一个Jenkinspipe道来构build和部署我的第一个Go项目,使用Jenkinsfile和docker.image().inside 。 我无法弄清楚如何去获取vendor/目录中的依赖关系。 当我运行构build时,我得到了一堆错误: + goapptesting。/ … src / dao / demo_dao.go:8:2:无法在以下任何位置find软件包“github.com/dgrijalva/jwt-go”: /usr/lib/go_appengine/goroot/src/github.com/dgrijalva/jwt-go(from $ GOROOT) /usr/lib/go_appengine/gopath/src/github.com/dgrijalva/jwt-go(from $ GOPATH) /workspace/src/github.com/dgrijalva/jwt-go …为什么不拿起Vendor目录? 当我抛出一些日志logging时,似乎在运行sh "cd /workspace/src/bitbucket.org/nalbion/go-demo" ,下一个sh命令仍然在原来的${WORKSPACE}目录中。 我真的很喜欢jenkins文件的想法,但我找不到任何像样的文件。 (编辑 – 这里有不错的文档,但是dir("/workspace/src/bitbucket.org/nalbion/go-demo") {}在docker.image().inside) 我的Docker文件类似于: FROM golang:1.6.2 #Google的App Engine Go SDK 运行wget https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_linux_amd64-1.9.40.zip -q -O go_appengine_sdk.zip && \ unzip -q go_appengine_sdk.zip -d / usr / lib / && \ rm […]

Jenkinsfile与docker容器内的writeFile?

如果我有一个Jenkinsfile docker.image('foo').inside { writeFile file: bar, text: baz } 该文件被写入Jenkins代理的工作区,而不是在容器内,对吗? 有一个理智的方法来写一个容器内的文件? 我能在网上find的最接近的是https://issues.jenkins-ci.org/browse/JENKINS-33510 。 我想我可以在这里使用sh -step,但这听起来很丑。

如何使用docker.image提供托pipe文件到Jenkins版本?

我正在尝试使用Jenkinspipe道来构build一个Maven Java项目,并将其构件部署到Nexus中。 Nexus凭证由Jenkinspipe理,所以我需要Jenkins提供Maven settings.xml文件。 我的pipe道使用docker运行构build。 我的Jenkinsfile如下所示: node('docker') { git 'git@bitbucket.org:myorg/myproject.git' stage 'Build and Test' // This throws: java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.InvokerInvocationException for security reasons //configFileProvider([configFile(fileId: '7d6efcd2-ff3d-43dc-be40-898dab2bff64', variable: 'MYSETTINGS')]) { // sh 'cp ${MYSETTINGS} mysettings.xml' // } docker.image('maven:3.3.9').inside { // sh 'mvn -s mysettings.xml -U -e clean deploy' // This fails trying to access AWS […]

如何使用docker隔离jenkins中的构build

我在专用服务器上使用jenkins 2。 我的构build是一个多分支pipe道,这个构build的第一步是做一个docker-compose up -d为了运行数据库(redis和mongo)并运行testing。 一切正常,直到你有两个同时在不同的分支提交; 2版本之一不能启动容器,因为该端口当然已经被占用。 我希望能够在2个不同的分支上运行2个版本:我如何实现这个目标? 我docker-compose.yml文件如下所示: mongo: image: mongo:2.6.12 ports: – 27017:27017 mem_limit: 100m redis: image: redis:3.0.7-alpine ports: – 6379:6379 mem_limit: 60m 我的构build完成与Jenkinsfile ,我读了有一种方法来运行一个容器内的构build docker.image("some image").inside{ // build }

问题与jenkinspipe道脚本和docker工人图像

我尝试在Docker容器中构build项目,图像如下所示: FROM maven:3.3.9-jdk-8 WORKDIR mvnBuildDir ENTRYPOINT ["mvn"] 如果我运行我的容器像下面一切正常。 docker run -v /home/user/Worspace/myMavenProject:/mvnBuildDir myMaven3 clean package 但是,如果我在我的Jenkinsfile中尝试这个,我得到了一个错误,没有告诉我什么。 Jenkinsfile: //… def maven = docker.image("myMaven3"); maven.inside("-v ${workdir}:/mvnBuildDir"){ stage "build and test" sh "mvn clean install" } //.. 错误: [Pipeline] { [Pipeline] stage (build and test) Entering stage build and test Proceeding [Pipeline] sh [master] Running shell script + […]

如何在jenkinsfile中为docker.build设置自定义上下文

我正在尝试修改jenkins的docker build。 我正在关注我们的docker-compose文件,并且我正在创build一个正在创build每个容器并将它们连接在一起的Jenkinsfile。 我遇到的问题是docker-compose文件声明不在Dockerfile所在的上下文。 据我了解,jenkins会将上下文设置为Dockerfile所在的位置,根据是否构buildjenkinsfile或docker-compose文件,将文件复制到不同的相对位置。 该文件夹结构是: workspace |-docker |-db |-Dockerfile |-entrypoint.sh 这是Dockerfile如何为有问题的文件声明COPY指令 COPY docker/db/entrypoint.sh / 这是我的jenkins文件如何build立文件。 据我所知,这个目录的背景 docker.build("db", "${WORKSPACE}/docker/db") docker-compose文件声明如下: db: build: context: . dockerfile: docker/db/Dockerfile 将上下文置于项目的根源。 有没有什么办法可以告诉jenkinsfile使用与docker-compose文件相同的上下文,以便Dockerfile的COPY指令可以保持不变并且对Jenkins和docker-compose有效? 如果这是不可能的,是否有人知道任何替代解决scheme?