devops之路持續集成容器部署方案

圖片描述

先來看整體架構圖,分爲構建和部署node

  1. 從代碼庫到runner完成docker鏡像的製做,而後提交到私有鏡像庫
  2. 經過rancher容器管理平臺拉取鏡像,啓動容器服務,完成服務部署

1.項目版本中加入

.gitlab-ci.ymlgit

stages:
  - test
  - deploy

# 變量
variables:
  DEV_RSYNC_PATH: "/data/deploy/xunlei.com/misc.xl9.xunlei.com/d/"

# 全部 stage 以前的操做
before_script:
  - npm set registry http://xnpm.sz.xunlei.cn
  - npm install

# 代碼檢查
lint:
  stage: test
  script: npm run lint

# 單元測試
unit:
  stage: test
  script: npm run unit

# 部署測試服務器
deploy_dev:
  stage: deploy
  tags:
    - 10.10.34.91-dev
  only:
    - develop
  script:
    - rsync -av --delete-after --exclude-from=/data/shell/home.xl9.xunlei_exclude.list . $DEV_RSYNC_PATH
    - chmod -R 755 $DEV_RSYNC_PATH
    - chown -R nobody:nobody $DEV_RSYNC_PATH
    - find $DEV_RSYNC_PATH -type f -exec chmod 644 {} \;
    - cd $DEV_RSYNC_PATH
    - npm install

2. 製做項目dockerfile

例如:docker

FROM ubuntu

RUN apt-get update && apt-get install -y nodejs  
ADD . /app  
RUN cd /app && npm install

CMD npm start
  1. 當代碼提交後,經過git的鉤子機制觸發gitlab ci,gitlab ci 管理在註冊在本身下的runner構建主機,執行.gitlab-ci.yml 中配置的shell命令,經過dockerfile製做項目鏡像,而後push鏡像到私有鏡像庫中。
  2. 在rancher中,配置容器啓動命令,完成服務的運行
相關文章
相關標籤/搜索