1. 程式人生 > >『中級篇』docker之CI/CD持續整合-CD演示(74)

『中級篇』docker之CI/CD持續整合-CD演示(74)

從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伺服器上訪問,整個流程基本就是這樣。