Docker一键部署GitLab与Jenkins实现CI/CD
·
| 服务器 | 备注 |
| 10.100.1.30 | 部署Jenkins |
| 10.0.1.106 | 部署gitlab |
1.docker部署gitlab
1)创建持久化目录
mkdir -p /usr/local/gitlab/{config,logs,data}
2)拉取gitlab镜像
docker pull gitlab/gitlab-ce:latest
3)运行GitLab容器
docker run -d \
--name gitlab \
--restart always \
-p 8081:80 \
-p 443:443 \
-p 2222:22 \
-v /usr/local/gitlab/config:/etc/gitlab \
-v /usr/local/gitlab/logs:/var/log/gitlab \
-v /usr/local/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
4)看运行状态
docker ps -a | grep gitlab

初次启动时间较长 访问地址:http://10.0.1.106:8081(服务器地址)
初始账户root
获取密码👇
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
复制登录即可

2.Docker部署Jenkins
1)创建挂载目录
mkdir -p /usr/local/jenkins/{data,logs}
2)拉取Jenkins镜像
docker pull jenkins/jenkins:lts
3)运行Jenkins容器
docker run -d \
--name jenkins \
--restart always \
-p 8080:8080 \
-p 50001:50000 \
-v /usr/local/jenkins/data:/var/jenkins_home \
-v /usr/local/jenkins/logs:/var/log/jenkins \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:lts
4)配置SSH免密登录(Jenkins到目标服务器)
# 1. 进入Jenkins容器
docker exec -it jenkins bash
# 2. 生成SSH密钥对
ssh-keygen -t rsa -C "jenkins@docker" -f /var/jenkins_home/.ssh/id_rsa -N ""
# 3. 将公钥复制到目标服务器(部署Nginx的服务器)
ssh-copy-id -i /var/jenkins_home/.ssh/id_rsa.pub root@10.0.1.106
# 4. 测试SSH连接
ssh root@10.0.1.106
5)创建凭据信息内容写Jenkins地址及key
下边要写gitlab的用户及密码和ID

安装NodeJS, Publish Over SSH 插件

配置Publish Over SSH
点击高级----输入目标服务器密码

访问gitlab

将图上http://4475f8575748/root/test.git在服务器上克隆地址http://10.0.1.106:8080/root/test.git
git clone http://10.100.1.30:8080/root/test.git
6)在Jenkins中创建项目


注指定分支依次类推配置:develop 开发 baseline 测试 master生产 👆

编译代码:
#!/bin/bash
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com
# 1. 修复 node_modules 权限
chmod -R 777 node_modules/
# 3. 构建
npm run build:prod
# 验证构建结果
ls -la

7)服务器创建目录
mkdir -p /root/nginx
8)用docker部署一个nginx挂载这个目录 构建是会创建dist目录
docker run --name my-nginx -d -p 80:80 -v /root/nginx/dist:/usr/share/nginx/html:ro nginx
将代码上传至服务器解压至/root/nginx目录Jenkins构建会生成dist目录
8)添加文件到暂存区
git add .
提交更改
git commit -m "测试"
推送代码
git push origin baseline <分支名>测试
访问gitlab查看推送的代码

到Jenkins构建步骤



返回服务器执行重启nginx
docker restart my-nginx
浏览网页部署nginx服务器地址

更多推荐

所有评论(0)