痛点
个人比较喜欢用hugo来写博客,因为Hugo用起来比较方便,生成文章速度快,但是它也有痛点,就是第一次使用或者在一个新的机器上使用,又要下载安装,又要设置环境变量,往往以上操作直接就给劝退了,更别提以后版本升级等维护操作了。
一开始我在想要是有个东西能让我在不同环境下,快速运行一个hugo环境就好了,这样就能节省很多时间用来搞模版优化还有省出来很多写作时间。
用来解决这个痛点,我们用docker将这个问题工程化不就把问题解决了么
#聊聊工程化Docker#
创建Dockerfile
我们创建一个Dockerfile 将我们需要的hugo运行环境全部写好,这样我们通过这个文件构建出的docker 镜像在任何?️安装docker的OS环境下不就能直接跑起来了么。
?下面让我们看下如何构建这个文件
使用一个基本镜像 base image
这里使用debian 12 slim版本
Dockerfile:
FROM debian:12.0-slim
安装hugo
FROM debian:12.0-slim
RUN apt-get update \
&& apt-get install -y hugo \
&& rm -rf /var/lib/apt/lists/*
暴露http端口
本地运行默认端口是1313,这里直接就直接用它了
FROM debian:12.0-slim
RUN apt-get update \
&& apt-get install -y hugo \
&& rm -rf /var/lib/apt/lists/*
EXPOSE 1313/tcp
entrypoint
搞一个简单的entrypoint防止docker 容器运行后退出
FROM debian:12.0-slim
RUN apt-get update \
&& apt-get install -y hugo \
&& rm -rf /var/lib/apt/lists/*
EXPOSE 1313/tcp
ENTRYPOINT ["tail", "-f", "/dev/null"]
这里只是提供一个思路,可以根据自己的需求对这个基本的dockerfile进行优化
构建docker hugo工具镜像
命令行模式下在Dockerfile对应的文件夹⬇️执行 :
docker build -t hugotools:1.0 .
执行完将通过我们的Dockerfile来构建一个hugotools 1.0版本的镜像
运行hugotools镜像
将hugotools镜像实例化,获得一个运行容器
docker run --name hugotool --rm -p 127.0.0.1:1313:1313 -v [your workspace location]:/app hugotools:1.0
进入hugotool容器内
使用docker ps 获取到hugotool容器的?
docker ps
进入容器内
docker exec -it [your container id] /bin/bash
这里我们直接进入运行中的容器内,出现bash命令行
运行hugo server
cd /app
hugo server --bind=0.0.0.0
hugo server 命令执行后, hugo server 将运行起来,http://localhost:1313 ?将在日志?️显示,直接鼠标?️单击链接,在打开的浏览器?️,将看到在本地发布的博客网站。
© 版权声明
文章版权归作者所有,未经允许请勿转载,侵权请联系 admin@trc20.tw 删除。
THE END