此文章是简答描述了代码CI/CD自动化流程部署的方式方法,比较适用于测试环境,我们自己项目的生产环境是不放Jenkins的,因为Jenkins本身链接互联网,一堆的漏洞,这个Jenkins的环境是我自己在centos7的系统上搭建的,大家可坐下参考,如果想了解jenkins的部署,可以点击我的头像,参考jenkins部署的文章。

如下准备:
gitee
在线注册了个账号,并把代码库设置为私有,如果大家用的是gitlab,用法也是一样的。/


我在本地创建了ceshi的目录,并提前准备好了一份游戏的代码bird(代码来源于老男孩)

并根据gitee提示命令,对目录进行了git init的初始化,并推送到了gitee上


jenkins
我在本地的虚拟机上部署了Jenkins,用的8080端口,建议大家在正式使用的时候,用本地机器进行不部署,尽量别用docker部署,因为本地部署后期维护起来相对方便些。

本地部署的jenkins版本是2.492.3

harbor仓库
在本地部署了私有化harbor仓库,我本地部署的账号为admin,密码为1


把链接加上面gitee的账号密码加下面







本地写了Dockerfile以及本地脚本build.sh

Dockerfile文件,当开发把代码推送到gitee后,我提前设置了jenkins任务,把代码同步到jenkins和本地一份,如果大家有需要可以设置钩子(代码在gitee更新后,自动拉取到jenkins和本地)

[root@k8s237 ceshi]# cat Dockerfile 
FROM  harbor.oldboyedu.com/web/nginx:1.20.1-alpine


LABEL school=oldboyedu \
      class=linux85 \
      auther=JasonYin

ADD . /usr/share/nginx/html
COPY config/bird.conf  /etc/nginx/nginx.conf
 

build.sh脚本
 

[root@k8s237 ceshi]# cat build.sh 
#!/bin/bash


VERSION=$1

docker login -u admin -p 1 harbor.oldboyedu.com
docker build -t harbor.oldboyedu.com/project/bird:v0.${VERSION:-1} .
docker push harbor.oldboyedu.com/project/bird:v0.${VERSION:-1} 
docker logout harbor.oldboyedu.com
 

这样用jenkins的任务直接调用 build.sh 的脚本就可以了。别忘记给Jenkins在本地的权限,因为安装Jenkins后默认权限不是root

方法 A:将 Jenkins 用户加入 docker 组(推荐)
# 查看 docker.sock 的权限
ls -l /var/run/docker.sock

# 将 jenkins 用户加入 docker 组
sudo usermod -aG docker jenkins

# 重启 Jenkins 服务
sudo systemctl restart jenkins

查看控制台输出

查看harbor仓库是不是已经上传了新的镜像。

Logo

一站式 AI 云服务平台

更多推荐