『中級篇』docker之CI/CD持續整合-CD演示(74)
阿新 • • 發佈:2018-12-14
從gitlab中flask-demo下載程式碼到本地。
通過git clone 克隆到本地
修改.gitlab-ci.yml 增加部署程式碼
- 修改
stages:
- style
- test
- deploy
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-deploy:
stage: deploy
script:
- docker build -t flask-demo .
- docker run -d -p 5000:5000 flask-demo
tags:
- demo
- 提交到自建的gitlab上 commit push
- 增加了pipline
想想一下場景
gitlab-ci.yml是否有問題,假如有人修改程式碼,提交程式碼,重新CICD的時候
#執行這句沒問題
docker build -t flask-demo .
#執行這句就有問題了,之前已經有一個了之前的埠號就是5000,部署肯定報錯的,解決方案,可以先將之前的remove掉,在起一個新的。可以寫一些簡單的指令碼。
docker run -d -p 5000:5000 flask-demo
- 先將剛才建立的remove掉
sudo docker ps
sudo docker rm -f 容器名稱
- 修改yml
.gitlab-ci.yml 然後commit push到伺服器上
stages:
- style
- test
- deploy
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-deploy:
stage: deploy
script:
- docker build -t flask-demo .
- if [ $( docker ps -aq --filter name=web) ]; then docker rm -f web;fi
- docker run -d -p 5000:5000 --name web flask-demo
tags:
- test1
PS:基本的流程就是開發人員提交程式碼,自動構建,然後可以在ci伺服器上訪問,整個流程基本就是這樣。