使用hugo搭建博客
这篇文章在被推送上来之前,最后一个问题,是我的git pull出现的问题,卡住动不了了,就像下面这样

这里先记一下,不然等会儿忘了。
网上各种解决办法都试过了,最后在StackOverflow找到方法,如下:
1
|
# git config --global --add remote.origin.proxy ""
|
正题
hugo是什么,hugo是一个不需要前端代码能力,仅通过markdown格式的文件,就能完成一个非常精美的界面和交互的博客网站。说准确一点,hugo是一款go语言编写的,专注于博客、公司首页这种简单逻辑的代码生成工具。与wordpress、ghost功能相似,原理不同而已。简单来说,就是你自己在电脑里写写字,就可以显示在网站里面,且没什么技术要求。
开销
新买的云服务器,1c1g,298/年(已经不是新用户了,太贵了),域名很久之前买的,100来块钱,5年,弄了个免费的SSL。
国内的服务器,要建站必须要先备案,总时长6天,有备案经验所以比较快。
环境架构
因为hugo最终是要生成前端代码的,所以有一个编译的过程,而我又不能每次写完文章都要去编译一次,那样太浪费时间了,所以我把所有文件放到github上,然后通过github action进行自动化处理。

但是这个流程只能处理到打成镜像,推到我阿里云账号下的镜像仓库里,还是需要自己去服务器重新下载新镜像,然后重启服务。
理想状态下是要部署在k8s里,然后通过github webhook进行滚动更新。想想看过年能不能把我的台式机弄回去,做一个远程的机器,然后通过内网穿透来管理,里面弄一套k3s,应该就完美了。
下面贴一下github action的配置和Dockerfile,写的比较简单,能用就行~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# Github Action配置
name: Integration Test Github
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: barrettzjh/checkout@master
- name: Publish to Registry
uses: barrettzjh/Publish-Docker-Github-Action@master
with:
name: registry.cn-hangzhou.aliyuncs.com/zhangjinhui/hugo
username: ${{ secrets.DOCKERUSER }}
password: ${{ secrets.DOCKERPASS }}
registry: registry.cn-hangzhou.aliyuncs.com
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# Dockerfile
# Build the manager binary
FROM registry.cn-hangzhou.aliyuncs.com/zhangjinhui/alpine:hugo as builder
WORKDIR /workspace
# Copy the Go Modules manifests
COPY . .
# Build
RUN hugo -D
# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
FROM nginx:latest
RUN rm -rf /usr/share/nginx/html*
COPY --from=builder /workspace/public /usr/share/nginx/html
|
架构图和之前做过的应用一样

这些弄完了,剩下的就只有创作了。
新建文章
使用hugo命令生成md文件。
1
2
|
# hugo.exe new posts/第一篇文章.md
Content "D:\\学习\\CloudNativeQingFeng\\content\\posts\\第一篇文章.md" created
|
现在我正在这个文件里面写东西。创作完成之后,将修改提交,push到github中去就ok了。
1
|
git add . && git commit -m "new file 第一篇文章.md" && git push
|
然后触发Github Action

通过后,镜像就存到阿里云镜像仓库中了。需要手动下载镜像然后重新启动。
在服务器中执行,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
[root@qingfeng CloudNativeQingFeng]# docker pull registry-vpc.cn-hangzhou.aliyuncs.com/zhangjinhui/hugo:latest
latest: Pulling from zhangjinhui/hugo
a2abf6c4d29d: Already exists
a9edb18cadd1: Already exists
589b7251471a: Already exists
186b1aaa4aa6: Already exists
b4df32aa5a72: Already exists
a0bcbecc962e: Already exists
399dd7017ca2: Pull complete
ce337247ced4: Pull complete
Digest: sha256:1564095b6ea4452195972aed5d1beac09cccb32b8bf5e6dc48fb5ab4496f9f2f
Status: Downloaded newer image for registry-vpc.cn-hangzhou.aliyuncs.com/zhangjinhui/hugo:latest
registry-vpc.cn-hangzhou.aliyuncs.com/zhangjinhui/hugo:latest
[root@qingfeng CloudNativeQingFeng]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c3bd17d2e0c ca5c74b2adf2 "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:1313->80/tcp intelligent_wilbur
[root@qingfeng CloudNativeQingFeng]# docker stop 3c3bd17d2e0c && docker rm 3c3bd17d2e0c
3c3bd17d2e0c
3c3bd17d2e0c
[root@qingfeng CloudNativeQingFeng]# docker run -d -p 1313:80 registry-vpc.cn-hangzhou.aliyuncs.com/zhangjinhui/hugo:latest
a1372853249134502a70f058a84b54a4cd73c756328a9b015961765094a271e2
[root@qingfeng CloudNativeQingFeng]#
|
刷新页面https://barrett0828.com