1:首先获取安装docker,根据自己的系统类型选择,我这里选择centos
文档路径 https://docs.docker.com/engine/install/
1.1:(未安装过docker可跳过)如果之前安装过docker先执行卸载
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.2:设置仓库
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.3:安装docker(一路yes到底)
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1.4:安装完成后,启动docker
sudo systemctl start docker
1.5:验证安装成功
sudo docker run hello-world
2:设置docker镜像加速
2.1: 设置镜像仓库地址(修改/etc/docker/daemon.json文件,不存在则自行创建)
vim /etc/docker/daemon.json
2.2:登录到阿里云获取加速器地址(我使用阿里云镜像加速)
获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
2.3:复制以上加速器地址至daemon.json中,如下
{
"registry-mirrors": ["https://<your-mirror-id>.mirror.aliyuncs.com"]
}
2.4:重启docker
systemctl restart docker
2.5: 确认加速器已配置
docker info (查看 Registry Mirrors 输出项)
3:拉取镜像源
docker pull jenkins/jenkins:2.440.3
docker pull 2233466866/lnmp:latest
docker pull gitlab/gitlab-ce:latest
4:创建独立网络(指定了局域网子网范围,网关)
docker network create --driver=bridge \
--subnet=172.10.0.0/16 \
--gateway=172.10.0.1 \
myNetwork
创建成功后可使用 docker network ls 命令查看
5:防火墙设置
systemctl stop firewalld.service //关闭
systemctl disable firewalld.service //关闭开机启动
setenforce 0
6:创建jenkins容器
docker run -d -p 8080:8080 \
-p 50000:50000 \
--net myNetwork \
--name myJenkins \
-v /var/jenkins_home:/var/jenkins_home \
--privileged=true \
jenkins/jenkins:2.440.3
注:如果出现容器没up的情况,需要查看日志 (docker logs 容器名称),一般是权限问题
chown -R 1000:1000 /var/jenkins_home
chmod 755 -R /var/jenkins_home
(成功后访问 宿主机IP:8080 即可)
7:创建lnmp容器
docker run -dit \
-p 8081:80 \
-p 443:443 \
-p 3306:3306 \
-p 9000:9000 \
-v /data/wwwroot/www:/www \ 映射项目目录
--privileged=true \
--net myNetwork \
--name=myLnmp \
2233466866/lnmp:latest
修改nginx (修改root目录为/www/项目名,try_files路由重写)
docker exec -it myLnmp /bin/bash
vi /usr/local/nginx/conf/nginx.conf
保存重启nginx
cd /usr/local/nginx/sbin
nginx -s reload
8:jenkins进入配置
8.1:进入容器如下图目录,查看复制密码填入
docker exec -it myJenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
8.2:选择安装推荐的插件
8.3:创建管理员
8.4:实例配置-使用默认的链接
8.5:完成
8.6:安装 gitee插件 / Publish Over SSH插件
如图直接搜索
8.7:重启jenkins服务
docker restart myJenkins
8.8:配置gitee(系统管理 -> 系统配置 -> 搜索gitee)
8.9:上述(8.8),链接名自定义,证书令牌一项-点击添加后
类型选择Gitee API 令牌, ID随便填,描述随便填
令牌获取地址:https://gitee.com/profile/personal_access_tokens
9.0:配置Publish Over SSH(密码方式)(系统管理 -> 系统配置 -> 搜索SSH)
点击新增
注:先展开高级填写,然后test configuration ,然后保存
高级配置
9:安装rsync (用于将项目从jenkins工作空间复制到站点目录)
yum -y install rsync
10:创建jenkins任务
10.1:创建任务
10.2:输入任务名称,选择Freestyle project
10.3:general配置(选择8.8配置的gitee配置)
10.4:源码管理配置
填入项目仓库地址,然后指定分支后保存
10.5:构建器配置
webhook密码点击右下角生成,然后复制到gitee的webhook中
10.6:增加构建步骤
选择先前配好的目标服务器,填入rsync命令,保存
注意:部署项目需要忽略掉一些目录
使用 --exclude
rsync -avz --delete --exclude 'vendor' --exclude '*.env' --exclude 'storage' --exclude 'bootstrap/cache' /var/jenkins_home/workspace/my11 /data/wwwroot/www