痛点

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