CD介绍
CD(持续交付,持续部署)
持续交付:将代码交付给专业的测试团队去测试
持续部署:将测试通过的代码,发布到生产环境
实现持续交付持续部署
安装Jenkins
官网:https://www.jenkins.io/zh/blog/2018/12/10/the-official-Docker-image/
docker-compose.yml
version: 'v2.2.2'
services:
jenkins:
image: jenkins/jenkins
restart: always
container_name: jenkins
ports:
- 8888:8080
- 50000:50000
volumes:
- ./data:/var/jenkins_home
- /usr/java/maven:/usr/local/maven
- /var/run/docker.sock:/var/run/docker.sock
environment:
JAVA_OPTS: '-Duser.timezone=Asia/Shanghai'
运行容器
docker-compose up -d --build
第一次运行时,会因为data目录没有权限,执行下面命令后重新运行容器
chmod 777 data
安装成功后访问:http://106.55.229.11:8888/
这个时候会弹出输入密码的页面,通过查询日志方式输入密码:
docker-compose logs -f
输入密码后会出现一个让你选择安装插件的页面,点击选择安装插件;
搜索git后,勾选git Parmeter
搜索publish,勾选 Publish Over SSH
安装时间比较慢,安装完成后设置账户密码;
配置目标服务器及Gitlab免密码登陆
流程: gitlab → jenkins → 目标服务器
Jenkins去连接目标服务器
jenkins安装后首页地址:http://ip:8888/
Manage Jenkins → Configure System -->Publish over SSH 设置 登陆gitlab机器的账户和密码
配置gitlab免密码登陆
ssh-keygen -t rsa -C "407922583@qq.com"
- 将密钥复制到gitlab的ssh中
手动拉取gitlab项目
使用SSH免密码连接时,第一次连接需要手动确认
进入jenkens容器
docker exec -it jenkins容器ID bash
git clone http://106.55.229.11/root/go_web_demo.git
第一次拉取项目时会有提示,输入yes即可,拉下代码后,删除刚拉取的代码,重新用jenkins任务构建来拉取