Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Docker based micro service building tool, connecting CI with production env

Notifications You must be signed in to change notification settings

EvaEngine/docker-builder

Repository files navigation

EvaCD - Continuous Delivery for EvaEngine

基于Docker/Docker-Compose/EvaEngine的持续交付工具, 主要完成单元测试结束到生产环境部署的流程:

  • 从项目代码构建Docker镜像
  • Push镜像到Docker registry(目前为阿里云)
  • 生成docker-compose yaml配置
  • 上传docker-compose 配置到七牛
  • 构建过程提供实时Log查询接口

工作流:

flow

link

Setting up

全局依赖:

  • Git
  • Redis
  • Docker
  • Docker-Compose

项目安装

假设所有项目位于/opt/htdocs目录

1. 获得本项目代码

cd /opt/htdocs
git clone git@github.com:EvaEngine/docker-builder.git

2. 安装项目依赖

cd docker-builder
make install

3. Clone要构建项目代码, 假设要构建项目为EvaEngine/EvaSkeleton.js, 请确保git有权限访问要构建项目

cd /opt/htdocs
git clone git@github.com:EvaEngine/EvaSkeleton.js.git

4. 编辑config/config.local.production.js, 将编译项目加入配置

module.exports = {
 dockerBuilder: {
 rootPath: '/opt/htdocs', //源代码根目录
 composeSite: 'http://compose.evaegine.com', //存放compose文件的url
 projects: { //支持编译的项目
 eva_skeleton: {
 path: 'EvaSkeleton.js', //项目路径, 相对于根目录, 如果以斜线开头则为绝对路径
 allowNoTag: false //是否允许构建非Tag版本
 }
 },
 qiniu: { //七牛文件上传配置
 bucket: 'XXX',
 key: 'XXX',
 secret: 'XXX'
 }
 }
};

5. Web API启动:

npm start

6. Worker启动:

npm run worker

7. 登录Docker Registry

sudo docker login --username=XXX registry-internal.cn-hangzhou.aliyuncs.com

8. 在Docker Registry创建初始镜像

阿里云中在容器服务内选择创建镜像仓库, 镜像名与项目内镜像名一致, 仓库类型选择私有, 代码源选择本地仓库

9. 开始构建

假设构建EvaSkeleton.js项目的v1.0

访问/v1/build/eva_skeleton/v1.0, 会开始项目的构建过程, 同一项目同一版本只能有一个Worker对其进行构建

构建约定

所有微服务项目需要有自我构建的能力,本项目仅做辅助与调度

目录结构

被构建项目必须包含以下结构:

.
├── Makefile
├── compose/ 存放compose yaml

构建指令

被构建项目必须包含以下指令:

  • make sync-code 同步所有分支代码
  • make docker-build 安装项目依赖, 并将项目构建为Docker镜像
  • make docker-ship 将项目Docker镜像推送到Docker-Registry, 并在compose/生成compose配置文件

About

Docker based micro service building tool, connecting CI with production env

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /