『中級篇』docker之CI/CD持續整合—真實Python專案的CI演示(72)
阿新 • • 發佈:2018-12-13
隨便找一個開源的python的在github專案。新增到gitlab上。
copy到gitlab上
-
new project
-
Git repository URL
- 點選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的環境
sudo gitlab-ci-multi-runner register
python3.4的環境
sudo gitlab-ci-multi-runner register
sudo gitlab-ci-multi-runner verify
新建github-ci 檔案
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的比較慢,我直接增加了加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.io
sudo systemctl restart docker
結果還是報錯了,開始分析:
Cloning repository...
Cloning into '/builds/root/flask-demo'...
fatal: unable to access 'http://gitlab-ci-token:[email protected]/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]
下增加:
sudo vi /etc/gitlab-runner/config.toml
成功了 重新Retry
PS:這次主要給大家簡單的介紹下CI,還沒設計到CD。下次吧!