1.基础环境依赖支持------ linux服务器 安装dockerlinux
下载容器 Jenkins 运行 搭建私仓 registrygit
项目 open_cloud 码云开源框架docker
项目里面的私仓地址,须要进行修改,修改为如今jenkins运行的这个服务器的私仓地址api
服务器安装docker 参考以前文章安全
docker 安装Jenkins 参考以前文章服务器
须要注意一下几点:框架
1. Jenkins_home 作外部宿主机文件映射的时候,须要给外部的宿主机文件赋予权限,由于容器使用的是内部建立的Jenkins用户,无权限,没法读写 例子: -v /home/jenkins/home/:/var/jenkins_homemaven
2. 我在使用docker下载Jenkins的时候,Jenkins作初始化,下载插件一直失败,后面仔细查找才发现,docker官方已经废弃了Jenkins这个镜像,如今最新使用的是jenkins/jenkins测试
3. 由于咱们使用的是docker镜像Jenkins启动的,全部,在设置器对应的jdk maven 的时候,都须要作命令映射,使容器能够识别到外部宿主机的这些环境,我这边把jdk,还有maven都安装在opt目录了,因此作了映射 -v /opt:/optspa
4.内部的Jenkins容器,操做mvn 打包docker镜像的时候,须要配置,是docker外部的docker命令生效,因此得在启动的时作
参数配置 示例:-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker
参考示例:http://www.javashuo.com/article/p-xnyoreri-z.html
5.由于第四部这里,作了docker的文件映射,是jenkins能够操做docker,可是jenkins的镜像使用的用户组,是本身容器的jenkins用户,不是宿主机的root,因此,在打包成功,写入镜像的时候,会没法写入,这里,咱们须要对宿主机的docker.sock作配置权限,不然没法写入,构建报错。
参考示例:https://www.jianshu.com/p/db58d1cfd01b
好了,到了这里,jnekins算是启动成功了。
启动成功jenkins,须要输入初始化密码,由于我作了Jenkins_home的映射,因此在宿主机上,密码路径是这样
宿主机路径:/home/jenkins/home/secrets/initialAdminPassword
容器内部路径:/var/jenkins_home//secrets/initialAdminPassword
由于,我上面的命令,作了特殊的映射,因此直接在宿主机查找便可,根据本身的实际状况来
下载系统默认的插件,安装好之后,设置默认密码,用户,进入
由于,我代码是在码云托管,因此,进去插件管理,在可选插件,搜索gitee进行安装,我这里已经安装
安装成功,须要对gitee进行配置,以便连接码云,进行代码的拉取
进入系统设置,设置码云相关
在这里,添加码云的私钥。私钥配置地址,是在https://gitee.com/profile/personal_access_tokens 进行添加,安全设置---私有密钥 。私钥只是展现一次,记得进行记录
而后继续Jenkins
连接名 自定义 Gitee 域名 URL 这是固定给码云地址
证书令牌,这里选择Jenkins,进行添加
选择正确的类型,giteeapi令牌 ,在apiv5这里,把你码云的私有令牌填写上。完成添加。而后点击上图的测试连接,进行测试。测试经过。
好了,顺便记得添加jenkins的mavne,jdk,我以前作了opt的映射,因此,我这里,直接写的相应的地址
保存应用,出去建立任务把。这里我建立的是maven项目
这里,咱们使用刚才建立的gitee的那个自定义连接
这里咱们须要注意的是,源码管理这块,连接gitee之后,须要配置登录的用户名,以及密码,这是配置好的
这里,你须要选择类型,是用户以及密码,看清楚,下面的id以及描述,是自定义的,刚才是1,如今就是2.不和以前的重复便可
建立成功之后,选择上图的你配置的gitee的用户以及密码
这里须要注意的是,我们以前不是到了映射,Jenkins_home映射到了home/jenkins/home了吗?可是聪明的你,应该明白我为啥这样些了,应为,jenkin容器找的话,仍是找的他的本身目录,只不过,本身的目录,这层,被docker的 -v 参数,和外部宿主机粘合在一块儿了,可是容器,须要正确指定。让他找到pom。你若是不是Jenkins容器,固然没必要这么作。
这里mvn 构建成功。而后执行当前的脚本,进行dockerfile的编译
这是sh的脚本。这里,你须要注意的是,我为何把脚本放在opt了,还有就是为何cd 进入的是
cd /var/jenkins_home/workspace/wlpt/wlpt-datainterface/platform/open-cloud-api-zuul-server
而不是
cd /home/jenkins/home/workspace/wlpt/wlpt-datainterface/platform/open-cloud-api-zuul-server/
这是由于我们以前作了 docker run jenkins 的时候,作的-v参数的映射啊。好了,总体设置成功之后,在点击构建,好了,是原谅的绿色了。ok,大功告成