Tag: jenkins

企业私人Dockerregistry最佳实践

当我们正在准备与我们自己的私人登记处一起展开时,这个问题最近出现在我的脑海里。 什么是企业最佳实践,为什么? Q1: 使用1个S3存储后端运行多个registry? 每个registry都有设置,可以将它推送到同一个S3存储桶中的dev,qa或prod(顶级)文件夹。 运行1registry与1个S3存储后端为所有dev / qa / prod环境? 由于Docker的整个目的是让图像在任何地方运行,所以我们只提供不同的docker运行参数,因为docker镜像本身在env中是完全相同的,只是你传递的运行参数是不同的。 每个环境运行1个registry和1个S3存储后端 Q2: 从开发者一路推广的形象,最好的做法是什么? 涉及到哪些工具组合。 例如,我们有一个用于Dockerfiles的中心gitlab,当我们检查新的Dockerfile时,会有一个钩子触发Jenkins从Dockerfile构build镜像并在registry中检查它。 什么是轻松推广的好方法(除非你之前select了第二种选项),图像到了下一个级别 – qa,并最终产生? Q3: 如果您更新了其中一个基本映像,那么确保将更改传播到registry中的其他映像上的方法是什么? 例如,你用新的东西来更新你自定义的基础Ubuntu Dockerfile,并且你希望使用这个基础镜像的其他Docker文件被重build并推送到registry中,这样更改将被自动传播。 Q4: 如果您拥有不同的AWS账户,那么它是否在以上所有方面发挥作用:DEV为1,QA为1,PROD为1等。

使用Jenkins CloudBees Docker自定义生成环境插件时无法使用Dockerfile

我尝试使用“在Docker容器内部构build”选项“从Dockerfile构build”,按照以下指南进行操作CloudBees Docker自定义构build环境插件 我已经把Dockerfile放在工作空间的根目录下(/ var / lib / jenkins / jobs / lumi / workspace)。 然后当一个构build触发,我得到下面的错误。 我认为它能够findDockerfile,但由于某种原因无法构build图像。 Build Docker image from ./Dockerfile … $ docker build –tag b916af9f0b3e48425cb54c323d1a3adb749a72a1 –file Dockerfile /var/lib/jenkins/jobs/lumi/workspace The Dockerfile (Dockerfile) must be within the build context (/var/lib/jenkins/jobs/lumi/workspace) FATAL: Failed to build docker image from project Dockerfile java.lang.RuntimeException: Failed to build docker image […]

如何释放与Jenkinspipe道的docker图像

我有一个项目来build立一个docker图像,在我的情况下,它是一个包含(容器内)数据的mongo图像的扩展。 我使用这个mongo docker镜像进行集成testing。 目前,Maven并不习惯构build这个项目。 当我想发布这个图像的一个版本,我在我的电脑上这是不理想的。 我想保留一个文件,其中包含我的泊坞窗图像的当前版本(如pom.xml)。 我应该做些什么,在我的项目中添加一个pom.xml,用于versionning和maven-release-plugin,添加一个简单的version.txt,在我的发布过程中进行更新? 还是有一个像“docker.version”文件,我不知道这样做? 我在GitHub上发布我的项目的一个例子: https : //github.com/Ameausoone/mongodb-docker-with-data

在子Dockerfile中使用ARG命令

我正在创build基于Jenkins Docker镜像的Dockerfile在镜像中添加一些预先安装的软件包(build-essential等)。 在Jenkins Dockerfile他们使用ARG命令来创buildjenkins用户和组:请参阅这些行 。 这是我的Dockerfile : FROM jenkins USER root RUN apt-get update && apt-get install -y build-essential USER jenkins 但是,当我build立它适合我的jenkins主机用户通过使用这一行: docker build –tag my-jenkins \ –build-arg user=jenkins \ –build-arg group=jenkins \ –build-arg uid=$(id -u jenkins) \ –build-arg gid=$(id -g jenkins) \ . 我有这个错误: One or more build-args [gid group uid user] were not […]

Jenkins和Docker插件java.lang.NullPointerException:没有指定uri

我正在试图与Jenkins一起使用Docker插件。 但Jenkins无法访问REST API。 在jenkinsconfiguration我把Docker的REST的URL: http://127.0.0.1:4243 : http://127.0.0.1:4243 : http://127.0.0.1:4243 ,当点击testing连接,它给了我Something went wrong, cannot connect to http://127.0.0.1:4243, cause: null Jul 21, 2016 8:57:52 AM WARNING org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl doTestConnection uri was not specified 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:120) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.getDockerClient(DockerBuilder.java:204) at org.jenkinsci.plugins.dockerbuildstep.DockerBuilder$DescriptorImpl.doTestConnection(DockerBuilder.java:138) at sun.reflect.GeneratedMethodAccessor235.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) 但是,当我login到用户jenkins苏su jenkins并做一个curl 127.0.0.1:4243/info一切正常。 […]

Docker中的Docker权限错误

我有一个泊坞窗设置为CI。 本质上,机器上有一个jenkins CI服务器,它使用相同的机器docker socket为CI创build节点。 这很好,直到我最近更新docker。 我已经确定了这个问题,但我似乎无法弄清楚正确的方法。 host $ docker exec -it myjenkins bash jenkins@container $ docker ps Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied host $ docker exec -it -u root -it myjenkins bash root@container $ docker ps … docker […]

Jenkins Amazon ECR插件login问题“授权令牌已经过期”

我已经按照Amazon ECR插件( https://wiki.jenkins-ci.org/display/JENKINS/Amazon+ECR ,这只是指示用户安装Amazon ECRconfigurationDocker构build和部署插件)上的说明, ,但Jenkins无法通过ECR进行身份validation。 产生的错误信息是: denied: Your Authorization Token has expired. Please run 'aws ecr get-login' to fetch a new one. 任何人都可以提供的build议非常感谢。

什么是最好的Docker标记策略?

可以肯定的是,“最新”标签是不够的(即如果你想回滚/debugging)。 什么是最好的docker标记实践? 使用内部编号或提交编号标记它会更好吗? 或者其他一些select?

为什么在运行从运行的jenkins容器提交的图像时,作业和系统configuration丢失了?

我从官方的jenkins图片中创build了一个jenkins容器,并添加了一些像git这样的插件。 此外,我做了一些基本的configuration,如身份validation设置和用户注册,然后我添加了jenkins的工作,并在运行jenkins容器工作得很好。 问题是当我将这个jenkins容器作为jenkins图像的新版本提交并重新运行新图像时,所有内容都丢失了:没有添加插件,没有用户注册,没有创buildjenkins作业。 有没有人可以帮助我做一个新的jenkins图像与我所有的configuration添加? 谢谢你们。 问候,yuliang

如何在jenkinspipe道作业中运行docker命令

在我的Manage Jenkins > Global Tool Configuration ,我已经configuration了一个名为“docker”的工具,如下所示: name: docker install automatically: CHECKED docker version: latest 然后,我在我的jenkinsfile中的所有内容如下,没有别的: node { DOCKER_HOME = tool "docker" sh """ echo $DOCKER_HOME ls $DOCKER_HOME/bin/ $DOCKER_HOME/bin/docker images $DOCKER_HOME/bin/docker ps -a """ } 我得到这样的错误:“ 无法连接到Docker守护进程,docker守护进程是否在该主机上运行? ”。 以下是完整的console log : Started by user Syed Rakib Al Hasan [Pipeline] node Running on master in /var/jenkins_home/workspace/helloDocker […]