通过Jenkins自动化部署简单的前后端项目

看公司成员,每次都为部署消耗不少时间,工作效率低,就想着提高工作效率,所以就尝试搭建 jenkins 前后端自动化部署项目。最后搭建完成也是非常开心。因为这效率提高不止一点。下面介绍搭建方式(spring boot 后台和 vite 前端) 1.配置 maven,jdk 和 nodejs 这里只配置 maven,个人觉得 jdk 和 nodejs 具体还是全局安装最好(个人觉得 jenkins 装不方便) 2.在项目中存放部署的文件 deploy.sh #!/bin/bash cd src/ui/web && pnpm install --registry=https://registry.npm.taobao.org && pnpm run build && cd .. && cd .. && docker-compose -f docker-compose.yml up --build -d 准备好 docker-compose.yaml 和 Dockerfile 等 3.在 jenkins 创建项目 填写 git 地址,选定分支 设置轮询(5 分钟查询一次是否有更新) 后端选择构建的 pom 文件,前端执行包含在 deploy.sh 中,直接执行即可 ...

2021年12月17日 · 1 分钟 · 诚哥博客

Centos安装Nodejs简单方式

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。本文主要讲的是如何在 Linux 即 Centos 上安装 Nodejs 的简单方式,有比设置环境变量更加简单的方式,那就是设置软链接,软连接到已经设置环境变量的路径即可,如 /usr/bin 1. 官网 下载编译好的包 官网下载: 下载 | Node.js 中文网 (nodejs.cn) cd /usr/local wget https://npmmirror.com/mirrors/node/v16.18.1/node-v16.18.1-linux-x64.tar.xz 2.解压重命名到 nodejs tar -xvf node-v16.18.1-linux-x64.tar.xz mv node-v16.18.1-linux-x64 nodejs rm -rf node-v16.18.1-linux-x64.tar.xz 3.安装一些全局包并创建软链接 因为我们是解压到了指定目录,但是无法全局执行,可以设置环境变量,但是那样就需要改 /etc/profile 文件,其实只需要加软连接到已经环境变量的路径即可 ln -s /usr/local/nodejs/bin/node /usr/bin ln -s /usr/local/nodejs/bin/npm /usr/bin ln -s /usr/local/nodejs/bin/npx /usr/bin npm install -g pnpm ln -s /usr/local/nodejs/bin/pnpm /usr/bin ln -s /usr/local/nodejs/bin/pnpx /usr/bin npm install -g yarn ln -s /usr/local/nodejs/bin/yarn /usr/bin ln -s /usr/local/nodejs/bin/yarnpkg /usr/bin 运行测试 node -v npm -v

2021年12月17日 · 1 分钟 · 诚哥博客

在CentOS编译Git源码

Git 是一个 免费的开源 分布式版本控制系统,旨在处理从小到小到的所有内容 具有速度和效率的超大型项目。 Git 易于学习, 占用空间很小,性能快如闪电。 它超越了 Subversion,CVS,Perforce 和 ClearCase 等 SCM 工具。 具有 廉价本地分支 等功能, 方便 的暂存区域 和 多个工作流程。 因为 Centos7 自动 git 版本是 1.8 比较旧,所以得装个新版 (1)去 官网 下载 git 最新源码解压到服务器 cd /usr/local yum install wget wget https://github.com/git/git/archive/refs/tags/v2.34.1.zip unzip v2.34.1.zip (2)编译源码 # 安装编译依赖 yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker # 编译源码 cd git-2.34.1 # make 编译; all是 makefile 的编译目标, 一般是第一个编译目标 make prefix=/usr/local/git all # make install make prefix=/usr/local/git install # 删除无用 rm -rf git-2.34.1 rm -rf v2.34.1.zip (3)配置全局环境变量 ...

2021年12月17日 · 1 分钟 · 诚哥博客

在Jenkins进行简单的自动化部署

在 Jenkins 进行简单的自动化部署 简单自动化部署前端项目 1.首先需要在自己项目里存放四个文件 deploy.sh #!/bin/bash docker-compose -f docker-compose.yml up --build -d docker-compose.yml version: "3" services: archetype-web: # 如果需要指定版本 就把 latest 换成版本号 build: ./ image: archetype-web:latest container_name: archetype-web ports: - "10231:80" privileged: true restart: always Dockerfile FROM nginx COPY dist/ /usr/share/nginx/html/ COPY nginx.conf /etc/nginx/conf.d/default.conf nginx.conf #开启gzip功能 gzip on; #开启gzip静态压缩功能 优先使用静态gz文件 gzip_static on; #gzip缓存大小 gzip_buffers 4 16k; #gzip http版本 gzip_http_version 1.1; #gzip 压缩级别 1-10 gzip_comp_level 5; #gzip 压缩类型 gzip_types text/plain application/javascript text/css application/xml text/javascript; # 是否在http header中添加Vary: Accept-Encoding,建议开启 gzip_vary on; server { listen 80; server_name localhost; #charset koi8-r; access_log /var/log/nginx/host.access.log main; error_log /var/log/nginx/error.log error; location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } 然后将需要部署的前端页面全部放入 dist 目录下 ...

2021年12月16日 · 1 分钟 · 诚哥博客

使用Docker恢复Mysql8备份的Data数据

前段时间公司数据库服务器崩溃启动不起来,经过我初步排查是/home 目录挂载不上导致启动不起来,虽然通过注释/etc/fstab 中的挂载信息,启动了,但是发现 mysql 数据有缺失, 还好有例行备份数据,就是 data 文件,经过我的尝试最后成功恢复数据,下面讲下方法 安装新 mysql 首先新整个服务器,安装 mysql,这里使用 docker 持久化安装 mysql docker run -p 3306:3306 --name mysql -e TZ=Asia/Shanghai \ -v /data/mysql/log :/var/log/mysql:rw \ -v /data/mysql/data :/var/lib/mysql:rw \ -e MYSQL_ROOT_PASSWORD=123456 \ -d --restart=always mysql:8.0.11 初始化数据库 使用工具连接 mysql 直到成功初始化(连接成功)为止,然后停止 mysql docker stop mysql 复制文件 复制备份文件到/data/mysql/的 bak_data,备份一次现有初始化的数据库(如果失败可以重新来过) cp -r /data/mysql/data /data/mysql/data_init 移动文件(重要步骤) mv /data/mysql/bak_data/* /data/mysql/data/ 期间会提示很多文件是否需要覆盖,需要覆盖的文件输入 y,不覆盖输入 n: 需要覆盖文件: ibdata1 ib_logfile0 ib_logfile1 ib_buffer_pool auto.cnf mysql.ibd 其他文件都不覆盖 ...

2021年12月16日 · 1 分钟 · 诚哥博客