惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Comments on: Blog
S
Schneier on Security
Microsoft Azure Blog
Microsoft Azure Blog
T
Tor Project blog
V
Visual Studio Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
月光博客
月光博客
罗磊的独立博客
Cisco Talos Blog
Cisco Talos Blog
P
Privacy International News Feed
T
Tenable Blog
阮一峰的网络日志
阮一峰的网络日志
AWS News Blog
AWS News Blog
T
ThreatConnect
博客园 - 三生石上(FineUI控件)
Recorded Future
Recorded Future
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
博客园 - 叶小钗
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
Arctic Wolf
L
LINUX DO - 最新话题
美团技术团队
大猫的无限游戏
大猫的无限游戏
I
Intezer
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
小众软件
小众软件
T
Threatpost
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
The Register - Security
The Register - Security
Project Zero
Project Zero
J
Java Code Geeks
Cyberwarzone
Cyberwarzone
IT之家
IT之家
MyScale Blog
MyScale Blog
T
Threat Research - Cisco Blogs
T
The Blog of Author Tim Ferriss
腾讯CDC
S
SegmentFault 最新的问题
F
Fox-IT International blog
S
Security Archives - TechRepublic
Last Week in AI
Last Week in AI
G
GRAHAM CLULEY
M
MIT News - Artificial intelligence

牧尘的NAS小站

大模型到底在干嘛 Claude 内部提示词手册公开(精选10条) AI现阶段常见新词汇出现背景(二) AI现阶段常见新词汇出现背景(一) Windows 下 OpenCV 编译与 GoCV 安装实战 CookLikeHOC:用老乡鸡的方式烹饪美味,轻松上手的JavaScript项目! SQLBot:问数新纪元的智能助手 🚀 什么是NAT?NAS远程访问绕不开的网络魔法 向量数据库介绍 MySQL慢SQL处理 NAS使用SnappyMail搭建个人WebMail 使用VirtualBox虚拟机安装群晖7.1系统 网络文件夹目前是以其他用户名和密码进行映射的 Nastool中IYUU插件修复 linux文件的特殊权限 linux文件的隐藏属性 个人下载记录 个人Docker镜像记录 Hexo博客放到OSS并自动更新 使用Hexo搭建个人博客 NAS使用timymediamanager刮削海报 群晖DSM降级指南 ls、cp、rm、mv命令详解
Hexo配合Jenkins自动部署博客
2024-03-01 · via 牧尘的NAS小站

发表于|更新于|技术随笔

|字数总计:731|阅读时长:2分钟|阅读量:

上一篇文章我描述了怎么把写的文章自动推送到OSS,但是还存在一个问题,我的博客代码是托管在自己部署的gitea服务器上的,每次写完文章都需要自动部署,然后提交代码。还是不够方便,那么有没有一种方式能提交代码后自动推送oss呢?

本文就介绍一种利用Jenkins来自动拉取提交的代码,然后推送到OSS。实现每次写完文章只需要提交代码就可以了。下面介绍具体的步骤

Docker安装Jenkins

找到合适的位置创建目录jenkins。
使用docker-compose的方式安装jenkins,下面给出docker-compose.yml文件内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
---
version: "3"
services:
jenkins:
image: jenkins/jenkins:latest
container_name: jenkins
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- ./home:/var/jenkins_home
- ./data:/var/jenkins_data
- /etc/localtime:/etc/localtime
ports:
- 8080:8080
labels:
- "traefik.enable=true"

- "traefik.http.services.jenkins.loadbalancer.server.port=8080"

- "traefik.http.routers.jenkins.entrypoints=web"
- "traefik.http.routers.jenkins.service=jenkins"
- "traefik.http.routers.jenkins.rule=Host(`jenkins.xxxxxx.cn`)"

- "traefik.http.routers.jenkins_https.entrypoints=websecure"
- "traefik.http.routers.jenkins_https.service=jenkins"
- "traefik.http.routers.jenkins_https.rule=Host(`jenkins.xxxxxx.cn`)"
restart: unless-stopped
networks:
default:
external:
name: docker_default

进入jenkins目录并执行命令

1
2
3
4
5

docker network create -d bridge --attachable=true docker_default

docker-compose up -d
docker-compose logs -f

随后使用 ip:8080访问jenkins,在日志里找到jenkin的默认密码登录并初始化Jenkins,这一步不再介绍,正常初始化就行。

下载nodejs

正常安装完jenkins后我们下载nodejs,如下图:

进入jenkins目录下的data目录,把刚才下载的nodejs放在data目录并解压。

配置jenkins

在jenkins主页点击Manage Jenkins–>Tools

随后往下滑到nodejs安装,按下图所示进行配置。

其中安装目录里的node-v18.12.1-linux-x64按自己的实际版本修改,随后保存。

新建构建

在jellyfin主页点击新建Item来新建一个构建。

随便命个名字并选择Freestyle project,点击确定

在源码管理处选择git仓库,这里我填写自己部署的gitea的blog仓库。
Credentials自行添加。

构建触发器选则轮询,并15S查询一次。

有精力的也可以下载generic webhook插件,使用webhook的方式,实时性更好,在此不再介绍,有需要的评论区留言。

构建环境需要选择Nodejs

Build Steps里面添加执行Shell,并添加如下命令。

1
2
3
4
5
6
npm config set registry https://registry.npmmirror.com/
npm install hexo-cli -g
npm install
hexo clean
hexo g
hexo d

随后点击保存就可以了。

我们可以点击立即构建查看配置是否有问题,没问题的话就可以实现提交代码自动部署静态博客了。。
当然,有问题的小伙伴可以在评论区留言。