当前位置: 首页 > news >正文

畅想网络网站建设推广长春网页制作公司

畅想网络网站建设推广,长春网页制作公司,网站制作 那种语言好,wordpress功能详解视频教程GitLab介绍 GitLab是一个用于仓库管理系统的开源项目#xff0c;使用Git作为代码管理工具#xff0c;并在此基础上搭建起来的Web服务#xff0c;可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能#xff0c;能够浏览源代码#xff0c;管理缺陷和注释。…GitLab介绍 GitLab是一个用于仓库管理系统的开源项目使用Git作为代码管理工具并在此基础上搭建起来的Web服务可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能能够浏览源代码管理缺陷和注释。       GitLab是由GitLabInc.开发使用MIT许可证的基于网络的Git仓库管理工具且具有wiki和issue跟踪功能。使用Git作为代码管理工具并在此基础上搭建起来的web服务。安装文档 GitLab安装 1、拉取镜像 此处本人拉取的是中文版镜像也可以拉取非中文版的任选 docker pull twang2218/gitlab-ce-zh2、运行镜像 docker run -d \ --name gitlab \ --restart always \ -p 8083:443 -p 8089:80 -p 8082:22 \ -v /etc/localtime:/etc/localtime:ro \ -v /home/gitlab/config:/etc/gitlab \ -v /home/gitlab/logs:/var/log/gitlab \ -v /home/gitlab/data:/var/opt/gitlab \ --privilegedtrue \ 18da462b5ff5命令解释 docker run -d #后台运行 –name gitlab #设置容器名称为gitlab –restart always #容器自启动 -p 8083:443 #将容器内部端口向外映射 -p 8089:80 #将容器内80端口映射至宿主机8089端口这是访问gitlab的端口 -p 8082:22 #将容器内22端口映射至宿主机8022端口这是访问ssh的端口 –v /home/gitlab/config:/etc/gitlab #用于存储极狐GitLab 配置文件。 -v /home/gitlab/logs:/var/log/gitlab #用于存储日志 -v /home/gitlab/data:/var/opt/gitlab #用于存储应用程序数据 –privilegedtrue #让容器获取宿主机root权限 gitlab/gitlab-ce #镜像的名称这里也可以写镜像ID 3、修改配置 进入容器内部 docker exec -it gitlab bash修改gitlab.rb文件 //先进入到gitlab目录 cd /etc/gitlab //编辑gitlab.rb文件 vim gitlab.rb修改gitlab.rb文件中的IP与端口号 在gitlab创建项目时候http地址的host(不用添加端口)这里的ip我指定的是我服务器的公网ip external_url ‘http://xx.xx.xx.xx’ //配置ssh协议所使用的访问地址和端口 gitlab_rails[gitlab_ssh_host] 194.xxx.xx.xx //和上一个IP输入的一样 gitlab_rails[gitlab_shell_ssh_port] 8022 // 此端口是run时22端口映射的8082端口 :wq //保存配置文件并退出 配置gitlab.yml文件 // 文件路径 /opt/gitlab/embedded/service/gitlab-rails/config //先进入到config目录下 cd /opt/gitlab/embedded/service/gitlab-rails/config //打开编辑gitlab.yml文件 vim gitlab.yml //修改host 与上面.rb文件修改的一致 //修改port 为8090 这个是对应的我们访问gitlab的ip 在容器内重启gitlab gitlab-ctl restart4、登录 此处注意一定要打开对应的端口否则无法访问此处本人直接是开启了一个区间的端口就不再一个一个打开了 地址为ip访问端口 第一次访问默认是root账户会需要修改密码密码至少8位数设置好之后确定就行 5、添加成员 6、提交代码到远程仓库 此处为了模拟操作因为本人此处已经提交过一次了这里可以先将远程仓库移出重新push 此处就是复制你的gitlab的提交地址如果你未登录此时会提示您需要登录输入您的账号密码即可 push完之后您就可以在您的gitlab仓库中看到您提交的代码了 7、给项目添加成员 此处gitlab成员已经在上述操作4中已经添加过了此时我们只需要给该项目添加我们在操作4中添加的成员即可 此处我将此成员的角色设置为开发人员下图有具体的成员权限讲解 Jenkins搭建 1、Jenkins简介 Jenkins是一个开源软件项目起源于HudsonHudson是商用的是基于Java开发的一种持续集成工具用于监控持续重复的工作旨在提供一个开放易用的软件平台使软件项目可以进行持续集成Jenkins软件使开发人员能够快速找到并解决代码库中的缺陷并自动进行构建测试。Jenkins中文官网 什么是CI/CD 当多个开发人员一起开发一个软件项目时持续集成CI的目标是让他们的代码能够快速、平滑地合并在一起。这通过自动化的构建和测试过程来实现以确保新代码与现有代码的兼容性并及早发现和解决问题。持续交付CD则是在持续集成的基础上更进一步强调将软件交付到生产环境的自动化。它的目标是确保每个代码更改都经过自动化的构建、测试和部署流程使得软件的交付变得更加高效、可靠。这样可以更快地向用户提供更新的软件版本和功能。简而言之持续集成就是为了保证团队成员的代码能够顺利地合并在一起而持续交付则是为了确保这些代码能够快速、可靠地发布到用户手中。通过这两个方法开发团队能够更高效地合作减少错误并且更快地推出新功能和更新版本。 2、Jenkins安装 下面是安装Jenkins的最低的要求 因为下面我们部署的是java应用所以需要了解jenkins目前版本适配的jdk版本官方版本对照 1、安装jdk 因为此处我们项目是java项目使用的是jdk1.8所以我们需要先安装jdk下载地址此处我们下载的为azul版本 RPM包和tag包的区别 将该rpm安装包上传到服务器上 先检查我们宿主机上是否安装过jdk java -version查看操作系统的版本 uname -m安装jdk yum install zulu8.74.0.17-ca-jdk8.0.392-linux.x86_64.rpm检查jdk是否安装成功 配置环境变量 yum 命令安装默认安装路径为 /usr/lib/jvm vim /etc/profile 编辑配置文件 在配置文件下方插入 #jdk的安装位置此处默认为/use/lib/jvm export JAVA_HOME/usr/lib/jvm/java-8-zulu-openjdk-jdkexport JRE_HOME${JAVA_HOME}/jreexport CLASSPATH.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH$PATH:${JAVA_PATH} 刷新配置文件使配置文件生效 source /etc/profile 检查编译环境 javac -version2、安装maven maven官方下载地址 此处下载的版本为3.8.8 将下载好的tar包上传到linux服务器中 解压改tar文件 tar -zxvf apache-maven-3.8.8-bin.tar.gz创建本地仓库 配置setting.xml文件修改配置 本地依赖保存地址 localRepository/home/maven/local_repository//localRepository阿里云镜像 mirroridalimaven/idnamealiyun maven/nameurlhttp://maven.aliyun.com/nexus/content/groups/public//urlmirrorOfcentral/mirrorOf /mirror 配置maven环境变量 vi /etc/profileexport MAVEN_HOME/home/maven/apache-maven-3.8.8 export PATH$PATH:$MAVEN_HOME/bin重新加载配置 source /etc/profile:::success 此处有一个坑就是在上文中安装jdk的时候指定JAVA_HOME目录时地址错误导致报错我们此处只需要将对应的JAVA_HOME改成正确的安装目录即可 ::: 验证 mvn -v3、安装git 使用yum的方式安装git yum -y install git查看git是否安装成功 git --version安装目录默认是在/usr/libexec/git-core 4、安装 拉取镜像 此处安装的版本为2.361.1因为此处版本为TSL长期支持版版本并且低版本无法安装插件此处虽然2.346是最后一个支持jdk1.8的版本但是我们可以指定我们宿主机安装的jdk目录来编译jdk版本为1.8的项目下面会有具体操作 docker pull jenkins/jenkins:2.361.1运行jenkins docker run -d --restartalways -m2G -u root -p 8088:8080 -p 50000:50000 \ -v /home/jenkins/jenkins_home:/var/jenkins_home \ -v /etc/localtime:/etc/localtime:ro \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/docker:/etc/docker \ -v /usr/bin/docker:/usr/bin/docker \ -v /home/maven/apache-maven-3.8.8:/usr/local/maven \ --group-add998 \ --name jenkins \ 729c87ece8d0命令解释 docker run: 运行一个新的容器 -d: 在后台以守护进程方式运行容器 –restartalways: 容器停止后自动重启 -m2G: 限制容器内存为2GB -u root: 以root用户身份运行容器 -p 8088:8080: 将容器的8080端口映射到主机的8088端口用于访问Jenkins Web界面 -p 50000:50000: 将容器的50000端口映射到主机的50000端口用于Jenkins的Agent连接 -v /home/jenkins/jenkins_home:/var/jenkins_home: 将主机的/var/jenkins_home目录挂载到容器的/var/jenkins_home目录用于持久化保存Jenkins的数据(此处只需要修改这一段的宿主机目录即可其他可以不用修改) -v /etc/localtime:/etc/localtime:ro: 将主机的当前时区配置文件挂载到容器使容器与主机使用相同的时区 -v /var/run/docker.sock:/var/run/docker.sock: 将主机的Docker守护进程的Unix Socket挂载到容器使容器能够与宿主机上的Docker进行交互 -v /etc/docker:/etc/docker: 将主机的Docker配置文件挂载到容器用于共享Docker配置 -v /usr/bin/docker:/usr/bin/docker: 将主机的Docker可执行文件挂载到容器使容器能够使用宿主机上的Docker命令 -v /home/maven/apache-maven-3.8.8:/usr/local/maven: 将宿主机的maven安装目录进行指定 –group-add998: 将容器内的gid 998添加到容器中的附加组列表中 –name jenkins: 将容器命名为jenkins 729c87ece8d0: 使用jenkins/jenkins镜像的2.346.1版本作为容器的基础镜像 打开端口 4、访问jenkins页面 设置密码 访问地址ip访问端口此处我设置的为8088 此处密码会在启动后在控制台输出可以使用命令docker logs jenkins查看然后再将这一串密码复制到下面的管理员密码处即可登录 登录成功后显示一般选择安装推荐插件即可 下面是本人在安装中发现安装插件很慢 如果等太久可以直接刷新页面跳过下载 此处默认就是服务器的ip:jenkins访问端口可以不用修改 通过下面方法解决插件安装慢的问题 更新为http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 安装maven插件 安装完之后会在下面显示下面内容 5、新建项目并运行 点击新建item-构建一个maven项目 :::success 此处gitlab中存在一个测试项目我们将此连接复制到jenkins中 ::: 在jenkins中添加当前gitlab的登录的账号名密码设置管理凭据 路径manage Jenkins-Manage Credentials 此处就是我添加的gitlab的全局凭据里面的内容就是gitlab的登录账号名和密码 配置全局变量jdk和maven 路径manage Jenkins-Global Tool Configuration 指定pom 配置jdk目录 因为此处我们项目是使用的jdk1.8此处jenkins版本默认是jdk11那么我们采取下列方式进行修改编译时的jdk版本 进入到容器内部 docker exec -it jenkins bash将宿主机的jdk复制到容器中的一个固定目录(此处及是将我们宿主机安装的jdk复制到容器内部) docker cp /usr/lib/jvm/java-8-zulu-openjdk-jdk(宿主机目录) jenkins容器名:/usr/local/zulujdk8容器中目录切换成我们配置的jdk1.8 因为此处我们将容器中的文件已经挂载出来了可以看到编译后项目生成在此处 此插件可以将打包好的jar包传到对应其他的服务器中 添加远程服务器配置此步骤是将打包好的jar发送到目标服务器并运行 在运行项目中配置上文中配置的ssh地址这个Post Steps代表bulid后执行的操作 此配置是Exec命令执行时的超时设置此处其实可以不必担心本人在下面命令中已经设置了对应的处理方式以日志追加的方式去运行并不会程序报错直接卡死导致超时 #运行命令 nohup /source/java/jdk1.8.0_261/bin/java -jar /data/pm/test_jenkins/test_jenkins-0.0.1-SNAPSHOT.jar /data/pm/test_jenkins/log.log 21 点击运行 点击运行之后日志输出 目标服务器对应目录下 6、其他设置介绍 1、设置per steps 此处设置为构建前运行的命令此处一般存在的需求为当我们需要重新构建时我们一般会kill正在运行的java程序清理一些内容 新建脚本文件 将此脚本放到目标jar包执行的服务器下尽量放在同一目录好维护 vi test_jenkins.sh#赋于执行权限 chmod x 文件名编写脚本 #删除历史数据 #删除该目录下的所有文件rm -f /data/pm/test_jenkins/* #删除该目录下的指定几个文件rm -f /data/pm/test_jenkins/log.log ... rm -f /data/pm/test_jenkins/log.log#获取传入的参数运行命令传入进来的第一个参数并赋值给appname,这个参数为项目名称 appname$1#输出这个第一个参数内容 echo arg:$1#获取正在运行进程其中包含参数$1 并且 包含java -jar的 并且把ps -ef中的第二个列字符内容输出出来赋值给pid pidps -ef | grep $1 | grep java -jar | awk {printf $2}echo $pid#如果pid为空提示一下否则执行kill命令 if [ -z $pid ]; #使用-z 做空值判断#如果为空执行thenecho $appname not started#如果不为空执行 else#杀死该进程kill -9 $pid#输出echo $appname stoping....#结束if判断 fi#判断是否杀死了这个进程 -w 精准匹配这个pid 筛选为appname的 checkps -ef | grep -w $pid | grep $appname if [ -z $check ];thenecho $appname pid:$pid is stopelseecho $appname stop failed#结束if判断 fi执行脚本 配置bulid前执行内容 bash /data/pm/test_jenkins/test_jenkins.sh test_jenkins2、自动触发 例如当提交代码后自动触发构建这种一般不常用正常都是手动点击或者手动部署了解即可 http://jenkins访问ip端口/job/test_jenkins/build?tokenshenlbang123456但是此处会存在一个问题如果退出了jenkins或者去其他页面访问此时就无法触发执行所以需要依赖下面插件Build Authorization Token RootVersion 需要将指定执行的链接替换成http://jenkins访问ip端口/buildByToken/buildjob需要指定的任务名称tokenshenlbang123456 在gitlab里配置对应的参数 此处可以配置完之后点击测试一下你会发现在jenkins上会执行对应的内容 3、其他几种构建方式 下面几种方式了解即可 cron表达式定时构建介绍 此处的cron表达式并不支持秒级的单位所以和开发中常用的cron表达式有所区别 *号代表任意 /号代表间隔 -号代表范围区间第一个 * 表示每个小时的第几分钟取值0~59 H * * * * H每小时执行一次 */5 每隔五分钟执行一次第二颗 * 表示小时取值0~2324小时制 * 15 * * * 表示每天下午3点 * 1 * * * 表示每天凌晨1点第三颗 * 表示一个月的第几天取值1~31 * 1 5 * * 表示每月5日凌晨1点第四颗 * 表示第几月取值1~12 * 15 5 1 * 表示每年几月执行第五颗 * 表示一周中的第几天取值0~7其中0和7代表的都是周日 1-6 表示周1到周6轮询SCM 也是通过时间表达式的方式但是和上面的cron表达式略有差别是通过配置时间去比对远程分支上代码的是否发生改变会根据配置的时间定时的去比对远程代码分支上的内容是否发生过改变如果改变了则会触发构建。需要由五个参数构成 第一个号代表分钟一个小时内的分钟数 第二个号代表小时一个天内的小时数 第三个号代表天一个月内的某一天 第四个号代表月一个年内的某一月 第五个*号代表周一个星期内的某一天 4、邮件通知 新增凭据 此处配置的为QQ邮箱的凭据 配置通知 设置全局的邮件通知设置 此处主要要记得先设置jenkins登录人的邮件地址否则可能会出现下面报错 QQ邮箱参考文档 可以测试一下是否可以发送 在对应项目中设置邮件通知
http://www.hkea.cn/news/14473312/

相关文章:

  • 网站页面划分网页升级跳转自动刷新
  • 网站建设公司营销推广百度青岛代理公司
  • 河南网站推广多少钱seo代码优化
  • 滕州市 网站建设公司中山网站建设制作
  • 网站怎么做的支付宝如何做英文ppt模板下载网站
  • 做大数据和网站开发的前景上海娱乐场所最新规定
  • jsp网站开发外文翻译wordpress mu下载
  • 如何给网站更换域名那个网站可免费做推广
  • nodejs做后端的网站wordpress服务器搬迁
  • 文成网站建设重庆网站建设制作费用
  • 安阳公司做网站个人备案经营网站备案
  • 旅游网站开发价格360急速网址导航
  • 龙岩网站建设龙岩网站制作.中国域名的网站
  • sdcms网站源码河南的网站建设公司
  • 贵阳开发网站建设最好用的cms
  • 手机网站建设视频教程_深圳专业网站建设公司多少钱
  • 招远网站建设联系电话3d建模基础入门教程
  • 高级网站开发技术使用什么语言中国企业在线
  • 律师怎样做网站珠海网络营销网站建设
  • 鞍山市城乡建设局网站中小企业网站建设好么
  • 旅游网站开发工具类似酷家乐做庭院的网站
  • 云南省网站建设收费调查报告论文网上免费发布信息
  • 长沙模板建站平台网页设计考研院校
  • 东莞建设造价信息网站网站运营心得
  • 厦门网站建设工作wordpress手机实现打赏功能
  • 衡水网站建设 燕丰收直播交友app开发
  • 手机建站程序网站备案信息模板
  • ps做网站首页规范尺寸wordpress 搜索标题
  • 做网站公司 陕西渭南蚌埠网站建设网站
  • 四会网站建设做相册的网站 网易