网页制作如何新建站点,网上商城开发网站建设,网站建设的具体方法,新余 网站建站 设计 公司Jenkins是一个开源的持续集成#xff08;Continuous Integration, CI#xff09;和持续交付#xff08;Continuous Delivery, CD#xff09;工具#xff0c;广泛应用于软件开发过程中。它基于Java开发#xff0c;旨在提供一个开放易用的软件平台#xff0c;帮助软件项… Jenkins是一个开源的持续集成Continuous Integration, CI和持续交付Continuous Delivery, CD工具广泛应用于软件开发过程中。它基于Java开发旨在提供一个开放易用的软件平台帮助软件项目实现持续集成和持续交付。它的主要功能有以下几点 1.自动化构建Jenkins可以根据配置自动从代码仓库获取代码并执行编译、打包等构建操作例如对于Java项目进行Maven或Gradle构建。 2.集成多种工具Jenkins能够与多种开发工具和技术集成如Git、Subversion等版本控制系统以及JUnit、Selenium等测试框架。 3.分布式构建支持在多台机器上进行分布式的构建任务以提高构建效率缩短构建时间。 工作流程图 提取 Jenkins镜像 [roothw-81969 ~]# docker pull jenkins/jenkins 查看镜像 [roothw-81969 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins latest 93d377dce516 2 days ago 441MB 运行docker镜像 [roothw-81969 ~]# docker run -d -u root -p 1000:8080 -v /jenkins:/var/jenkins_home --name jenkins1 镜像id 访问 Jenkins http://ip地址:1000/ 获取密码根据它的提示到指定目录寻找或者通过查看日志获取 [roothw-81969 ~]# docker logs 镜像id 另外一种获取密码的方法 docker exec -it [容器名称] /bin/bash
cat /var/jenkins_mount/secrets/initialAdminPassword
exit 输入密码后进入插件选择的界面推荐安装就行 设定管理员账号我们直接用admin账号 进入系统管理–插件管理来安装我们下方用到的插件 Localization:Chinese(Simplified) 汉化插件
Gitee Plugin 对接gitee的插件
Publish Over SSH 远程连接访问的插件
Email Extension 发送邮件插件
NodeJS 构建Vue等项目
Docker Docker插件
Generic Webhook Trigger 触发构建任务
thinbackup 数据定期备份 等待其安装完毕就可以开始使用默认的站点比较慢在【高级页面】更换其它国内的镜像 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 进入【新建任务】页面输入名称选择【构建一个自由风格的软件项目】保存。保存之后配置先不用配进入下一步 生成令牌 — 路径在gitee个人页面-【设置】-【私人令牌】-【生成新令牌】即可。生成完成后记得及时保存 在Jenkins面板点击【添加】选择下图选项成功之后记得保存 进入【我的视图】找到刚新建的任务进入配置页面 对这个任务的构建进行配置 进入我们的gitee要部署的仓库项目的页面把地址复制下来 配置远程服务器连接: 我们要用 Pushlish over SSH: 用来连接远程服务器作为仓库服务器。下面开始配置 首先进入【系统管理】- 【系统配置】往下滑找到【Publish over SSH】然后点击新增 成功之后连接服务器的配置就完成了 配置邮箱通知信息 选择要通知的邮箱开启smtp服务我用的QQ邮箱点击生成授权码保存下来。 到【系统管理】-【系统配置】配置我们的邮箱信息共有3个地方需要填写 需要填写的信息 SMTP服务器: smtp.qq.com
用户默认邮件后缀 qq.com
勾选【使用SSL协议】
SMTP端口 465邮箱整合项目 首先呢先在具体任务的【构建后操作】去配置 构建模板 !DOCTYPE html
htmlheadmeta charsetUTF-8title${ENV, varJOB_NAME}-第${BUILD_NUMBER}次构建日志/title
/headbody leftmargin8 marginwidth0 topmargin8 marginheight4 offset0table width95% cellpadding0 cellspacing0 stylefont-size: 11pt; font-family: Tahoma, Arial, Helvetica, sansseriftrtd(本邮件是程序自动下发的请勿回复)/td/trtrtdh2font color#0000FF构建结果 - ${BUILD_STATUS}/font/h2/td/trtrtdbr /bfont color#0B610B构建信息/font/bhr size2 width100% aligncenter //td/trtrtdulli项目名称nbsp;nbsp;${PROJECT_NAME}/lili构建编号nbsp;nbsp;第${BUILD_NUMBER}次构建/liliGit版本nbsp;nbsp;${GIT_REVISION}/lili触发原因nbsp;${CAUSE}/lili构建日志nbsp;a href${BUILD_URL}console${BUILD_URL}console/a/lili构建nbsp;nbsp;Urlnbsp;nbsp;a href${BUILD_URL}${BUILD_URL}/a/lili工作目录nbsp;nbsp;a href${PROJECT_URL}ws${PROJECT_URL}ws/a/lili项目nbsp;nbsp;Urlnbsp;nbsp;a href${PROJECT_URL}${PROJECT_URL}/a/li/ul/td/trtrtdbr /bfont color#0B610B构建之后的变化/font/bhr size2 width100% aligncenter //td/trtrtdulli历史变更记录 : a href${PROJECT_URL}changes${PROJECT_URL}changes/a/li/ul ${CHANGES_SINCE_LAST_SUCCESS,reversetrue,formatChanges for Build #%n\n%c\n,showPathstrue,changesFormat%a%m,pathFormat\\t%p\\n}/td/trtrtdbr /bfont color#0B610B失败的测试结果/font/b/bhr size2 width100% aligncenter //td/trtrtdpre stylefont-size: 11pt; font-family: Tahoma, Arial, Helvetica,sans-serif${FAILED_TESTS}/prebr //td/trtrtdbr /bfont color#0B610B构建日志/font/bhr size2 width100% aligncenter //td/trtrtdtextarea cols80 rows30 readonlyreadonly stylefont-family: Courier New${BUILD_LOG}/textarea/td/tr/table
/body/html 修改【系统配置】中默认的邮箱设置可以达到复用效果 Jenkins的所有数据文件都存在文件中Jenkins备份就是备份JENKINS_HOME目录。其中 workspace, builds 和 fingerprints目录是不需要备份的。 安装插件在【系统管理】下方有【thinbackup】选项 内容从至下为备份、恢复、设置。需要设置的地方 设定完成后点击save保存回到上一界面点击Backup Now。需要的时候点击还原备份点击restore 部署web前端项目 传统web项目 : 新建我们的任务,步骤和上面介绍的一样这里不再重复。然后把html文件拷贝到目标服务器 开启Nginx或者Tomcat服务就可以运行了 部署Vue项目 需安装插件所有用到的插件上面已经介绍过了 然后在【全局工具配置】配置node版本 接下来也需要配置SSH连接远程服务器 配置完毕后开始新建我们的任务同样上面也介绍了怎样配置服务器和新建任务的步骤这里不再重复 cd /var/jenkins_home/workspace/文件目录 #进入test项目目录
npm install chromedriver --chromedriver_cdnurlhttp://cdn.npm.taobao.org/dist/chromedriver
npm install
npm run build
cd dist
rm -rf 文件名.tar.gz #删除上次打包生成的压缩文件
tar -zcvf 文件名.tar.gz * #把生成的项目打包成test方便传输到远程服务器
cd ../ 最后一步把文件发到远程服务器上在【构建】或者【构建后操作】选择【send * over ssh】因为效果是一样的二者都可以,类似于部署传统web项目 SSH相关配置 dist/*.tar.gz
dist
usr/local/nginx/html/## shell脚本
cd /usr/local/nginx/html # 打开目标文件地址
rm -rf 文件夹名 # 删除包含目标文件的文件夹
mkdir 文件夹名 # 新建同名文件夹
tar -zxvf 文件名.tar.gz -C 文件夹名/ # 解压文件到这个文件夹的目录下
rm -rf 文件名.tar.gz # 删除压缩文件 部署SpringBoot项目 : 因为是java项目所以我们首先要配置java环境且用maven打包还要配置maven环境当然你用其他的打包也可以 安装JDK 点击【系统管理】- 【全局工具配置】即可进入配置面板 新增Maven 修改maven镜像源改成阿里云镜像 mirroridalimaven/idnamealiyun maven/nameurlhttp://maven.aliyun.com/nexus/content/groups/public/urlmirrorOfcentral/mirrorOf/mirror 完成后点击保存即可这样我们的jdk与maven就构建完成 部署服务 设置maven相关配置然后保存 需要输入的命令 clean package
pom.xml增加shell命令自动部署运行 填入命令 注意这分为直接运行jar包与运行Docker容器运行两种类型分别说明一下 jar包运行方式的脚本 sudo fuser -k -n tcp 项目端口号
cd 生成的jar包目录
nohup java -jar 文件名 日志目录文件地址 Docker容器运行的脚本 使用Docker运行首先需要制作Docker容器在项目根目录编写Dockerfile文件,然后上传到代码仓库 #FROM openjdk:8-jdk-alpine
FROM hub.c.163.com/dwyane/openjdk:8
MAINTAINER qinadu邮箱地址
EXPOSE 8080 # 对外暴露的端口
CMD [--server.port:8080] # 映射端口
CMD echo ---Docker容器环境配置成功即将运行---
copy *.jar /app.jar
ENTRYPOINT [java,-jar,/app.jar]
CMD echo ---服务开启成功访问端口:8080---clean install -Dmaven.test.skiptrue最后在构建项目中执行shell脚本保存 mvn docker:build -t 镜像别名
echo 当前docker 镜像
docker images | grep 镜像别名
echo 启动容器-----
docker run -d -p --name 容器名 镜像别名
echo 启动服务成功然后开始构建我们的项目返回上一步进入如下页面开始构建 Build with Parameters 改造shell脚本如果下次构建该项目的时候docker镜像和服务已存在需要先删除镜像和服务 # 先删除之前的容器
echo 移除之前的容器
docker ps -a | grep 容器名 | awk {print $1}| xargs docker rm -f
# 删除之前的镜像
echo 移除之前的镜像
docker rmi 镜像别名
# 构建镜像
mvn docker:build -t 镜像别名
# 打印当前镜像
echo 当前镜像
docker images | grep 镜像别名
# 启动容器
echo 容器启动中
docker run -d -p --name 容器名 镜像别名
# 打印当前容器
echo 当前容器
docker images | grep 容器名
echo 启动服务成功配置镜像容器服务 创建镜像仓库 使用jenkins构建 IMAGE_NAMEregistry.cn-beijing.aliyuncs.com/{命名空间}/{仓库名称}:web-demo-0.0.1-SNAPSHOT
echo IMAGE_NAME$IMAGE_NAME
echo 当前docker版本
echo docker -vecho 开始创建镜像
docker build -t $IMAGE_NAME .echo 开始推送镜像
docker login --username{阿里云Registry登录名} --password{阿里云Registry登录密码} registry.cn-beijing.aliyuncs.com
docker push $IMAGE_NAME
echo OK! 提取镜像 IMAGE_NAMEregistry.cn-beijing.aliyuncs.com/{命名空间}/{仓库名称}:web-demo-0.0.1-SNAPSHOT
docker pull $IMAGE_NAME
echo OK!