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