如何使用docker将hugo博客环境工程化

痛点

个人比较喜欢用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 ?将在日志?️显示,直接鼠标?️单击链接,在打开的浏览器?️,将看到在本地发布的博客网站。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MY96hk9l' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片