基于docker进行CI DI部署流程

docker的使用可以看栾一峰老师的教程

实验步骤:

1.搭建一个 git 服务

  • 拉取 gogs 镜像:docker pull gogs/gogs
  • 创建 gogs 存储目录:sudo mkdir /var/gogs
  • 所有者为当前用户,sudo chown -R ${USER} /var/gogs
  • 创建 docker 网络便于容器之间通信,docker network create cicd_net
  • 启动 gogs 容器
    docker run -d --name=gogs --network cicd_net -p 8080:3000 -p 3000:22 -v /var/gogs:/data gogs/gogs
    
  • 浏览器首次访问 gogs,配置安装 gogs
  • 注册 gogs 网站账号
  • 登录 gogs
  • 添加 SSH 密钥
  • 创建 git 仓库

2. 编写 web 服务提交 git

  • 克隆仓库
  • 编写 web 服务
  • 提交代码
  • gogs 上查看提交代码

3. web 服务生成 docker 镜像

  • 为 web 服务编写 Dockerfile
  • 构建 web 镜像 docker image build -t cicdweb .
  • 启动 web 容器 docker container run --name=cicd-web -p 5000:5000 -it cicdweb
  • 访问 web 容器

4. 编写一个类似 jenkins 的 deploy 服务

  • deploy web 服务启动子进程,执行 shell 脚本
  • shell 脚本完成以下工作:
    • web 项目代码克隆或者拉取
    • 删除 web 旧容器和镜像
    • 生成新的 web 镜像
  • 给 deply web 创建 Dockerfile
  • 生成 deploy web 服务镜像 docker image build -t deploy .
  • 启动 deploy web 容器
    docker run --privileged -p 4000:4000 -d docker:dind

5.git hook 让 deploy 自动构建镜像生成 web 容器

  • 配置 gogs 的 web hook,仓库提交代码时,推送 deploy web 服务

你可能感兴趣的:(笔记,docker,ci/cd,git)