持续集成

持续集成(Continuous Integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。 关于docker 的介绍,docker启动容器可以关注: docker + Gitlab CI 的持续集成(一) docker + Gitlab CI 的持续集成(二)

GitLab CI是 GitLab 提供的持续集成服务, 默认有3个[stages(阶段)]: buildtestdeploy,大部分项目用 CI 跑build 测试,码农可以很快得到反馈,是否写出了 bug

所以借助GitLab CI怎么搞起来呢?

1、首先需要起一个runner服务

runnerbuild构建脚本的承载者

docker pull gitlab/gitlab-runner
复制代码
docker run -d --name gitlab-runner --restart always   -v /srv/gitlab-runner/config:/etc/gitlab-runner   -v /var/run/docker.sock:/var/run/docker.sock   gitlab/gitlab-runner:latest
复制代码

有了前两章的经验,很快的启动了一个runner的服务,那怎么跟我们的代码关联上呢?

注册runner

docker exec -it gitlab-runner gitlab-ci-multi-runner register
复制代码
# gitlab-runner register Please enter the gitlab-ci coordinator URL:  // 构建项目提供的url# XXX
Please enter the gitlab-ci token for this runner:  // 构建项目提供的token# xxxxxx
Please enter the gitlab-ci description for this runner: // runner描述# docker
Please enter the gitlab-ci tags for this runner (comma separated):   // tags就是指定使用哪个runner来执行这个job
# zb
Please enter the executor: docker, parallels, shell, kubernetes, docker-ssh, ssh, virtualbox, docker+machine, docker-ssh+machine:  // runner的执行程序
# docker
Please enter the default Docker image (e.g. ruby:2.1):  // 执行程序选择docker 需要指定基础镜像
# docker:latest
复制代码

第一、二步的URL与token哪里来呢?

gilab需要构建的项目,settings ----> CI / CD ------> Runners 里会提供,如下图:

按步骤注册以后,gitlab上就会有我们的runner服务了

2、项目根目录创建gitlab-ci.yml文件


cache:untracked: truepaths:- node_modules/stages:- buildnpm_production:stage: buildscript:- pwd- docker build -t test-test .tags:- zbonly:- master
复制代码

本文只是演示build一个名字为test-test的新images,这时在master上 push 代码,就会触发GitLab CI构建,启动zb这个runner来执行script下的脚本

构建成功,服务器上就有了这个images,剩下的事情就是基于这个images run 起来,这一步骤还可以利用 jenkins 来完成

~文中如有不妥之处,欢迎批评指正~

转载于:https://juejin.im/post/5bae026a5188255c996b96ef

前端 docker + gitlab CI 的持续集成(三)相关推荐

  1. docker GitLab-runner CI/CD持续集成

    docker GitLab-runner CI/CD持续集成 docker GitLab-runner CI/CD持续集成 机器配置 gitlab安装 拉取镜像 创建挂载目录 启动容器 注册gitla ...

  2. 『中级篇』docker之CI/CD持续集成-项目生成镜像(76)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之CI/CD持续集成-项目生成镜像(76) 开始想用docker registry做私有镜像库,后来放弃 ...

  3. 『中级篇』docker之CI/CD持续集成-(终结篇)(77)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之CI/CD持续集成-(终结篇)(77) 今天是中级终结篇的最后一次了,想想在二个月的时间,每天的坚持学 ...

  4. ci持续集成工程师前景_『中级篇』docker之CI/CD持续集成-项目生成镜像(76)

    开始想用docker registry做私有镜像库,后来放弃了,知道的老铁应该知道这个玩意没有界面很不爽,后来选择了Harbor,还是通过vagrant 创建一个虚拟服务器,这样下来一共创建3个了,也 ...

  5. 晨光科力普基于GitLab CI/CD持续集成服务的应用

    科力普省心购是晨光文具集团在2019年初为了拓展综合办公物资采购业务成立的B2B电商平台.随着云时代容器技术的火热发展,Docker.Kubernetes等容器化技术越来越受到研发团队的喜爱.因此,省 ...

  6. Docker + GitLab CI/CD 实现自动化部署

    使用Docker+gitlab ci/cd 实现自动化部署 文章目录 使用Docker+gitlab ci/cd 实现自动化部署 1. Docker 1.1 Docker是什么? 1.2 Docker ...

  7. Android架构篇-5 CI/CD(持续集成、持续交付、持续部署)

    Android架构篇-5 CI/CD(持续集成.持续交付.持续部署) CI CI是指持续集成,代码的更新会定期自动构建.测试并合并到公共仓库中,方便多分支时解决冲突问题 CD CD是指持续交付和/或持 ...

  8. iOS架构篇-5 CI/CD(持续集成、持续交付、持续部署)

    iOS架构篇-5 CI/CD(持续集成.持续交付.持续部署) CI CI是指持续集成,代码的更新会定期自动构建.测试并合并到公共仓库中,方便多分支时解决冲突问题 CD CD是指持续交付和/或持续部署, ...

  9. centos7下Gitlab+Jenkins部署持续集成CI环境

    1.基本环境 主机:win10,IP:192.168.0.111:部署机器centos7,IP:192.168.0.65: 内存推荐到8G,实测需要6G以上,以免出现内存不够用而报错. 2.安装git ...

  10. (六)构建Docker私有仓库、Gitlab仓库和持续集成环境

    环境说明 IP 功能 eth0:192.168.124.139 eth1:172.16.100.10 Docker私有仓库.Gitlab.持续集成 eth0:192.168.124.138 eth1: ...

最新文章

  1. 使用dd查看磁盘前4个扇区的内容
  2. ner pytorch project code
  3. JavaEE 的基本实现
  4. [C++]VisualAssistX中文注释提示错误 解决办法
  5. 二叉搜索树C++(VS2017)
  6. string的内存管理问题
  7. Java随机数控制范围
  8. MPMovieplayercontroller
  9. Spring集成–强大的拆分器聚合器
  10. enter power save mode解决
  11. WordPress 4.8.2 升级维护版本发布
  12. Excel转html
  13. Linux shell标准输入,标准输出,错误输出
  14. dosbox 实现程序编译
  15. 英文词典 text 文本格式下载
  16. python+django+vue酒店入住客房管理系统
  17. linux指令打开网址,linux 如何使用命令打开网址
  18. 静态生存期和动态生存期
  19. 让SVG 自己动起来!SMIL animation动画详解
  20. 施耐德电气全球两大设计中心落户陕西西安

热门文章

  1. maya curveflow修改
  2. 一个存储过程,折腾了我半天
  3. Aminer学术社交网络数据知识图谱构建(三元组与嵌入)
  4. 知识图谱嵌入的应用场景
  5. 【LeetCode】【数组】题号:628,三个数组成的乘积最大
  6. 机器学习——第一回视频总结
  7. 地图Web服务API接口——搜索POI(以高德地图为例)
  8. c++中的堆(优先级队列 priority_queue)
  9. JS学习总结(13)——DOM
  10. ContentObserve的基本使用方法