hexo-docker方式部署
2024-08-19 08:50:26 # hexo # docker

背景

之前我都是用 npm 脚本来运行 Hexo,虽然也能成功,但总觉得少了点什么。于是我想,为什么不试试用 Dockerfile 的方式来运行呢?

开干!

我的项目目录结构

在开始之前,先来看看我的项目目录结构吧:

不同的结构需要调整下dockerfile文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.dockerignore
.github
.gitignore
db.json
Dockerfile
node_modules
package-lock.json
package.json
README.md
scaffolds
source
themes
_config.landscape.yml
_config.yml

添加 .dockerignore 文件

为了让 Docker 更高效地工作,我们需要添加一个 .dockerignore 文件,来过滤掉一些不必要的文件,比如日志文件和 node_modules。这里是我设置的内容:

1
2
3
4
node_modules  
npm-debug.log
Dockerfile
.dockerignore

编写 Dockerfile

接下来是最关键的部分——编写 Dockerfile!以下是我写的 Dockerfile,简单明了,快来看看吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 使用 Node.js 的官方镜像  
FROM node:18

# 设置工作目录
WORKDIR /usr/src/app

# 将 package.json 和 package-lock.json 复制到工作目录
COPY package*.json ./

# 安装依赖
RUN npm install

# 安装 Hexo CLI
RUN npm install -g hexo-cli

# 复制项目的所有文件到工作目录
COPY . .

# 暴露 Hexo 默认运行的端口
EXPOSE 4000
RUN cd /usr/src/app # 这里我曾踩过坑,确保在正确的目录下运行哦!

# 启动 Hexo 服务器
CMD ["hexo", "server"]

打包并运行

一切准备就绪后,我们就可以开始打包和运行我们的 Hexo 博客了!只需输入以下命令:

1
2
docker build -t xs-blog:1.0.0 .   
docker run -d --name xs-blog -p 80:4000 xs-blog:1.0.0

就这样,简单几步,你的 Hexo 博客就可以在 Docker 中顺利运行啦!是不是很酷呢?

总结

通过使用 Docker 部署 Hexo 博客,我不仅简化了运行环境,还提高了部署的灵活性。如果你也想尝试,快来动手吧!希望这篇博客对你有所帮助,期待看到你们的 Hexo 博客哦!