前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『中级篇』docker之CI/CD持续集成—真实Python项目的CI演示(72)

『中级篇』docker之CI/CD持续集成—真实Python项目的CI演示(72)

作者头像
IT架构圈
发布2019-07-08 18:49:29
1K0
发布2019-07-08 18:49:29
举报
文章被收录于专栏:IT架构圈

上次主要说了在githubCI的服务器,并且也演示了github的runner执行CICD,这次通过真实的python项目来演示下CICD。项目通过gitlab和gitlabCI进行CICD。 源码地址:https://github.com/limingios/docker-cloud-flask-demo 源码:https://github.com/limingios/docker/tree/master/No.11 随便找一个开源的python的在github项目。添加到gitlab上。

copy到gitlab上

  • new project
  • Git repository URL

https://github.com/limingios/docker-cloud-flask-demo

  • 点击create project
思考

上次注册了ci的runner,其实这个runner就是一个shell,通过命令的形式在ci服务器上运行该运行的程序。有可能ci服务器没有装python2 或者python3,我们可以在ci服务器里面装python2或者python3,但是如果想一下,这个ci服务器有很多人在用的话,python有很多环境,python有很多不同的依赖,如果环境全部都装在这个shell里面是不是很混乱,不光是python项目,如果有java项目啊,js的项目都装一下包肯定会很乱很乱,怎么去解决这个问题,看来只能通过docker了。

runner管理新的flask-demo

python2.7的环境

代码语言:javascript
复制
sudo gitlab-ci-multi-runner register

python3.4的环境

代码语言:javascript
复制
sudo gitlab-ci-multi-runner register
代码语言:javascript
复制
sudo gitlab-ci-multi-runner verify

新建github-ci 文件

代码语言:javascript
复制
stages:
  - style
  - test

pep8:
  stage: style
  script:
    - pip install tox
    - tox -e pep8
  tags:
    - python2.7

unittest-py27:
   stage: test
   script:
     - pip install tox
     - tox -e py27
   tags:
     - python2.7

unittest-py34:
   stage: test
   script:
     - pip install tox
     - tox -e py34
   tags:
     - python3/4

本地docker没有提前拉取镜像,下载python2.7 和 python3.4的比较慢,我直接增加了加速器

代码语言:javascript
复制
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.io
sudo systemctl restart docker

结果还是报错了,开始分析:

代码语言:javascript
复制
Cloning repository...
Cloning into '/builds/root/flask-demo'...
fatal: unable to access 'http://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@gitlab.example.com/root/flask-demo.git/': Couldn't resolve host 'gitlab.example.com'
ERROR: Job failed: exit code 1

Runner启动的docker容器里无法访问到 gitlab.example.com这个地址(能访问到才怪)。这一般是由于我们的测试环境没有使用域名导致的,gitlab论坛里也不少人讨论这个问题,如果你是在部署正式的gitlab环境,那你自然会有一个域名来使用。不过我这里只是搭建测试环境,所以我使用了一种投机的方法:

修改Runner的 /etc/gitlab-runner/config.toml文件,在其中的 [runner.docker]下增加:

代码语言:javascript
复制
sudo vi /etc/gitlab-runner/config.toml

成功了 重新Retry

PS:这次主要给大家简单的介绍下CI,还没设计到CD。下次吧!


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • copy到gitlab上
    • 思考
      • runner管理新的flask-demo
      • 新建github-ci 文件
      相关产品与服务
      容器镜像服务
      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档