目录

第一篇文章

使用hugo搭建博客

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

../images/git-hang.png

这里先记一下,不然等会儿忘了。

网上各种解决办法都试过了,最后在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进行自动化处理。

../images/github-action.png

但是这个流程只能处理到打成镜像,推到我阿里云账号下的镜像仓库里,还是需要自己去服务器重新下载新镜像,然后重启服务。

理想状态下是要部署在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

架构图和之前做过的应用一样

../images/jiagoutu.png

这些弄完了,剩下的就只有创作了。

新建文章

使用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

../images/github-action-run.png

通过后,镜像就存到阿里云镜像仓库中了。需要手动下载镜像然后重新启动。

在服务器中执行,如下:

 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