jenkins部署安装,前端自动化部署
2026/7/2 11:04:37 网站建设 项目流程

1、通过docker-compose部署jenkins

services: jenkins: image: jenkins/jenkins:2.555.2-lts container_name: jenkins restart: unless-stopped ports: - "8080:8080" volumes: - /home/jenkins_home:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /etc/localtime:/etc/localtime:ro #时间与宿主机同步 environment: #设置时区为上海,jenkins的时区默认UTC即使时间与宿主机同步在执行定时任务的时候还是走UTC的而不是实际的时间 - TZ=Asia/Shanghai - JAVA_OPTS=-Duser.timezone=Asia/Shanghai logging: driver: json-file options: max-size: "10m" max-file: "3"

2、访问web端并进行初始化

在映射的路径中访问

#进入容器 docker exec -it jenkins /bin/bash #查看初始密码,路径为web端显示的路径 cat /var/jenkins_home/secrets/initialAdminPassword

复制密码粘贴到web端点击继续

不想麻烦的并且可以连接外网的可以选安装推荐的插件,如果访问不了外网的就选第二个

等待即可

设置账号密码

3、加载部分需要的插件

安装ssh插件

安装完成即可

安装前端打包nodejs插件

4、安装nodejs

访问https://nodejs.org/zh-cn/download

访问官网下载对应的版本

下载好后上传到映射出来的路径中,可自行创建一个目录

我这里创建了一个tools目录,把包放进去然后解压

5、配置nodejs路径

找到nodejs点击新增,可以选择自动安装,不过还是推荐自行配置,别名可以随意一般就node的版本,安装目录是容器内的目录,我这里是/var/jenkins_home/tools/node设置完点保存

6、配置ssh

第一个name是别名可以随便设置,

第二个是hostname是需要ssh服务器的ip地址

第三个是登录账号

第四个Remote Directory,是工作目录,意思是远程的时候这个路径为远程时的根目录,这里推荐直接用/然后后面都尽量用绝对路径,看个人

输入完点击高级,可以自行设置密钥还是密码,我这里是用密码

输入完可以点击右下角test测试连接,最后点保存

7、创建git账号和密码

选择账号密码

输入完点击保存

8、构建项目

选择自由风格项目

配置git信息

配置node,第一个时打印构建的日志,报错方便排查,第二个时选择自己前面配置的nodejs

添加构建步骤

执行shell命令

# 清理上次的文件存在就删除,不存在就跳过 [ -d node_modules ] && rm -rf node_modules [ -d web ] && rm -rf web [ -f web.tar.gz ] && rm -f web.tar.gz # 安装依赖(使用 --force,如仍报错可换 --legacy-peer-deps) npm install --force # 构建 npm run build:dev # 将 dist 重命名为 web mv dist web # 将 web 目录打包压缩成 web.tar.gz tar -czf web.tar.gz web # 删除node_modules和web,压缩包已经推送 [ -d node_modules ] && rm -rf node_modules [ -d web ] && rm -rf web

打包成功后配置ssh

name之前配置了ssh配置的话直接选择就可以了

source files

是该项目下的包,jenkins创建项目时会创建一个项目名称的目录,上面的打包就是在他的相对路径中执行的,所以这里包名不需要配置路径直接写上面整理好的包名就能识别了,具体目录是,这里是映射的到宿主机的路径

找到对应的项目名称进入,以下是我之前构建过的项目,以上在执行所有操作都是在这个路径下的

Remote directory这里是配置ssh远程目标服务器的工作目录和上面就不一样了,不确定的情况就填/路径

以下命令是在目标服务器执行的

这里就是把包放到对应的nginx路径把旧版备份解压新版后删除压缩包

#用绝对路径进入前端目录以防万一 cd /home/nginx/www # 如果存在旧的 web 目录,重命名为 web_日期时间备份 if [ -d "web" ]; then backup_name="web_$(date +%Y%m%d%H%M%S)" mv web "$backup_name" echo "已备份旧web目录为$backup_name" fi # 解压新的 web.tar.gz tar -xzf web.tar.gz # 删除上传的压缩包 [ -d web ] && rm -rf web.tar.gz

完成后点save

我这里找之前以及写好的直接运行,正常来说都得慢慢调才行

点击控制台输出即可查看构建过程的日志

看最终是否成功,主要看中间是否有报错

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询