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中,配置容器启动命令,完成服务的运行
相关文章
相关标签/搜索