基于Docker容器的,Jenkins、GitLab构建持续集成CI

  • 时间:
  • 浏览:1
  • 来源:神彩IOS下载_彩神IOS下载官方

e.容器启动后,200200端口被绑定到了宿主机的8888端口,访问localhost:8888来访问jenkins

首次登录jenkins会时需输入jenkins的超级管理员密码,你这人密码在jenkins第一次启动的日志中,可不时需进入jenkins容器,查看运行日志,也可不时需根据页面提示,直接去jenkins的家目录下一有另4个.jenkins/secrets/init…..的文件内查看密码。登录后注册一有另4个用户,并在系统管理-管理插件下,安装GitLab的插件。第一次运行jenkins会我能 选折 安装插件,选折 第一有另4个推荐的安装后,在管理插件的可选插件tab下搜索Gitlab Plugin 和Gitlab Hook Plugin插件进行安装,以后 重启jenkins

c.通过基础镜像安装jenkins,也是通过Dockerfile

执行命令打包镜像

4.构建持续集成环境

万事具备,下面亲们刚结速利用gitlab,jenkins,来构建持续集成环境。

** 开发者将代码提交(push)到GitLab后,GitLab通过Hook通知jenkins,jenkins自动从GitLab中获取项目最新的源码进行集成和发布。

3.构建私有的Docker 镜像仓库

拉取一有另4个docker 的镜像仓库镜像,并运行该容器,容器运行回会绑定宿主机20000端口,我自己用的是daocloud.io提供的镜像,你这人镜像仓库时需注册。

b.构建基础镜像,整合jdk及mvn。配置PATH ,安装所时需的工具,Dockerfile如下:

通过docker-compose的最好的办法安装gitlab,docker-compose你这人命令时需单独安装,docker-compose会对指定目录下的docker-compose.yml文件进行执行,你这人文件会一次性启动所编辑的镜像,及所要用到的参数,官方提供的yml文件内容如下:

e.提交完成后,亲们刚结速配置jenkins,以jenkins用户登录jenkins,新建,选折 --构建一有另4个自由风格的软件项目以后 选折

a.通过Dockerfile构建一有另4个jenkins容器,基于centos7的镜像。

后续的持续集成,要基于kubernetes,kubernetes会自动的找其节点自动拉取刚push的镜像,并自动部署。未完待续

可不时需一路回车,默认生成在jenkins用户的家目录下的一有另4个.ssh的文件夹,将.ssh/id_rsa.pub的内容全部克隆qq

b.进入jenkins容器,以后 通过git客户端,拉取项目。在拉取后后,时时需使用ssh-keygen来生成当前jenkins用户在jenkins容器的公钥密钥,ssh-keygen时需安装openssh。

最初亲们在run jenkins容器的后后,将宿主机的docker文件挂载进了容器内部管理,你这人操作特别要,但我也很迷糊,但可不时需肯定的是,jenkins容器所运行的docker及操作是针对宿主机的docker的

d.现在拉取到当前目录的eurka是个空项目,亲们把亲们要上传的项目源码和Dockerfile(用来jenkins调用docker打包镜像用的)上加至你这人目录,以后 git add ,git commit ,git push 命令将本地文件上加提交并推送整合至gitlab你这人项目的某个分支下,默认是master

Jenkins容器安装Jenkins的rpm包,Jenkins依赖 JDK,却说有时需在Jenkins的容器中安装配置jdk,自己使用jdk1.8,同时时需Jenkins的容器调用maven的打包命令,却说有也时需配置安装maven,自己使用maven 3.3.9。

这里会在docker创建一有另4个新的网桥,gitlab所时需的gitlab容器和redis容器及postgresql容器全是你这人网桥指定的网段内,可不时需通过docker network ls查看.

在docker-compose.yml文件所在目录下,执行docker-compose up命令(docker-compose命令时需安装),以后 后后没法 下载过GitLab的镜像会自动下载,以后 下载过就直接启动已有的容器。

运行成功后,可不时需访问http://localhost:20000/v2/_catalog 来查看本地仓库信息

h.回到jenkins的设置,在构建中下Execute shell下,编写shell脚本,这里以后 gitlab被push后,通过webhook的最好的办法让jenkins自动从gitlab下拉取项目后后,要执行的代码

默认拉取后后,会在你这人项目的路径下,以后 不选折 自己当前的工作目录,可不时需通过echo $WORKDIR来查看当前位置,这人我的项目叫eurka,你这人项目下我上传了一有另4个maven项目,却说有我以后 我让你对你这人maven项目打包,我得进入你这人项目目录,以后 对你这人项目下的pom文件进行操作,贴出我的shell:

这有另4个配置完成后,亲们可不时需就可不时需拉取项目到本地了,以我自己demo为例

网桥的名称通常为你yml文件所在目录名称的小写上加下划线default,这人mygitlab_default。你这人很有用,以后 以后 你我让你容器内部管理互联,就时需指定所要连接的容器在一有另4个网段内,这人jenkins容器以后 想内部管理连接gitlab容器,就得全是mygitlab_default你这人网桥提供的网段内,Docker默认会为容器指定在docker0你这人网段内的一有另4个ip,通常会是172.17.. 我的gitlab默认在172.18,却说有时需在接下来创建jenkins容器并启动时,指定到18你这人网段内,当然你想通过宿主机的ip和端口也是可不时需的

a.在gitlab中创建一有另4个项目,项目类为public,创建回会有如下提示,哪些地方地方提示用来告诉你如保通过客户端下载项目,并提交项目

在配置好key后后,亲们回到jenkins容器,当前用户为jenkins。亲们想通过git客户端拉取项目的第八个准备工作,时需配置git的全局配置。

f.以后 进入到你这人项目的配置下,在源码管理选折 Git,以后 在Repository URL下,填入项目的ssh地址,注意这里不可一世用localhost,我能 填写主机的ip上加20022端口,也可不时需配置gitlab容器的ip地址上加22端口,我这里配置的是我的容器地址,这人ssh://git@172.18.0.4:22/jenkins/eurka.git,这里越多写20022端口!!!!以后 是public项目,却说有不时需上加认证

g.在构建触发器下,选折 Build wher a chage is pushed to GitLab……….将上方的地址克隆qq,以后 在gitlab你这人项目的Setting下的Integrations下,勾选Push Event,找到Add webhook,并填写刚才克隆qq的路径,我这里写的依然是容器ip,http://172.18.0.5:200200/project/eurka,没法 使用localhost:8888你这人url,保存

c.登录gitlab,右上角下拉列表下选折 setting,以后 在主页面有一有另4个SSH Keys的tab页,将你刚才克隆qq的公钥内容上加至Key你这人文本框,以后 点击Add key。你这人步骤的意思是,以后 你想让jenkins通过ssh协议从gitlab拉取项目,时需认证,配置的公钥以后 允许jenkins容器的jenkins用户所运行的jenkins从gitlab通过ssh协议拉取项目(特别别扭,以后 时需注意的是jenkins你这人容器主机和jenkins用户,jenkins任务管理器运行是jenkins用户启动的)。

(这里有一有另4个没法 正确处理的疑问,以后 关于拉取private类型的项目,时需做的ssh认证,时需公钥密钥匹配,以后 没法 实现,却说有暂时项目全是public。以后 public的项目说说,可不时需通过http协议进行拉取,以后 需不时需配置ssh的公钥,我也没试过,因该是不时需把。)

https://about.gitlab.com/installation/#centos-7,直接安装gitlab,不借助docker

d.运行jenkins容器,这里时需将container的网络设置跟GtiLab同网络的环境下,同时亲们希望jenkins容器在用maven打包后后,在调用docker惊醒封装镜像,以后 推送镜像至私有的镜像仓库,却说有亲们把宿主机的/usr/bin/docker 和/run/docker.sock 和所依赖的共享库文件,在启动容器时同时挂载至容器内部管理。

猜你喜欢

1500元左右的手机,好用。性价比高。推荐一下吧。谢谢

下载百度知道APP,抢鲜体验你对你这俩 回答的评价是?展开完整版你对你这俩 回答的评价是?展开完整版本回答由提问者推荐怪怪的推荐魅蓝e华为和小米。上官网去看看,总有一款一款

2020-03-22

赵老师,您好,不知道你们是怎么对这些表做读写比例分析的(不改源码/改源码)?

0人评论发布于2016-04-1520:36:192016-04-1520:31:18Ali_冷香zhenzhongpan0人评论1377人浏览0收藏来源:[直播]0人评论发布

2020-03-22

推荐个性价比高的智能手机,1000到3000的.最好亲自试验过。

华为nova4不错的,全网通6GB+128GB版本华为商城官网在售价为2499元,手机参数如下:1、屏幕:屏幕尺寸为6.4英寸,屏幕色彩为1670万色,分辨率为FHD+2310

2020-03-22

AI·重构企业客户服务能力

用于实时预测用户对物品偏好,支持企业定制推荐算法,支持A/BTest效果对比深度1挖掘企业与企业、企业与人物的关系,通很多 位交叉分析及智能算法,构建基于企业全息画像和企业关

2020-03-21

想买部手机,现在什么手机好

4、电池:电池容量为1000mAh(典型值),标配充电器支持4.5V/5A或5V/4.5A或5V/2A输出,兼容9V/2A快充,理论充电时间约1.5小时,续航更持久。3、性能:

2020-03-21