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

devops之路持续集成容器部署方案_第1张图片

先来看总体架构图,分为构建和部署

  1. 从代码库到runner完成docker镜像的制作,然后提交到私有镜像库
  2. 通过rancher容器管理平台拉取镜像,启动容器服务,完成服务部署

1.项目版本中加入

.gitlab-ci.yml

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

例如:

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中,配置容器启动命令,完成服务的运行

你可能感兴趣的:(devops之路持续集成容器部署方案)