背景
自动化构建和发布项目
目的
ci/cd
主角Jenkins
本次安装使用的是Linux服务器为基础。如果没有,可以找到其他平台代替,现在直接使用云服务器做教程,更加接近实际开发场景
安装环境
CentOS 1c2g 50gb空间
安装docker
Docker
sudo yum install -y yum-utils
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
//以上安装。
//进入docker配置文件目录
cd /etc/docker
-bash: cd: /etc/docker: No such file or directory
//我的机器是没有这个目录的,所以先创建目录
cd etc
mkdir docker
vi daemon.json
//按i切插入模式
//把下面{}的内容复制到里面
{ "registry-mirrors": [ "https://dockerhub.azk8s.cn" ] }
//按下esc
//按shift 然后快速按下zz,这样就保存退出编辑模式了。(一般人我都不会告诉他这么舒服的快捷键)能看到这里证明你是一个靓仔
//加载重启,并设置开机启动docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
//安装docker compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v1.25.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
//如果遇到权限问题
/usr/local/bin/docker-compose: Permission denied
chmod +x /usr/local/bin/docker-compose
dokcer compose安装完成之后,可以开始安装Jenkins
https://www.jenkins.io/zh/doc/tutorials/build-a-node-js-and-react-app-with-npm/
https://www.jenkins.io/zh/doc/book/installing/
这是官方文档,最简单直接的教程!
Docker安装Jenkins
//创建目录,存放数据
我的目录:/home/docker/jenkins
//在此目录下创建data目录,创建yml文件
yml:
version: '3' # 定义版本,不指定默认为版本 1,新版本功能更多
services: # 容器
jenkins:
image: 'jenkins/jenkins:lts' # 镜像
container_name: jenkins # 容器名称
restart: always # 同 --restart 参数
ports: # 端口映射,同 -p 参数,本地端口:容器端口
- '8080:8080'
- '50000:50000'
volumes: # 数据卷,本地文件夹:容器文件夹
- '/home/docker/jenkins/data:/var/jenkins_home'
启动Jenkins
docker-compose up -d
拉取镜像需要比较长的时间,等待完成即可
访问Jenkins
检查启动情况
docker ps
查看是否成功启动了。 启动成功之后,我们进入Jenkins中。浏览器访问ip:http://106.52.xx.xx:8080 前提是:服务器安全组打开了此端口。如无意外会看到如此入口。
Jenkins启动成功之后,在本地文件保存秘密。 在刚刚yml的配置中
//映射到本地路径
- '/home/docker/jenkins/data:/var/jenkins_home'
在这个data目录下
cat /home/docker/jenkins/data/secrets/initialAdminPassword
就能得到密码
进入之后
创建账户,继续。
选择默认的插件,继续。
继续。
进入。
到这里Jenkins就配置完成了。
后续计划
1:Jenkins配置 2:安装gitlab 3:配置Jenkins任务,通过git条件触发任务,达到自动编译,打包,发布。
脱离目前的困境:本地代码修改,本地编译/或上传代码编译,上传编译后产物,停止服务,更新。 Jenkins系列文章对应的工程例子,是博客系统的管理中心,门户,和Java后端,目的是实现3个项目的自动化构建。
自动部署vue项目:https://www.sunofbeach.net/a/1359477549431869440