From f033af8e6711befd8f1fe5dd054d15c770ec009e Mon Sep 17 00:00:00 2001 From: xiongxiao Date: Mon, 12 Jan 2026 12:19:59 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E4=BD=BF=E7=94=A8=E5=A4=9A=E9=98=B6?= =?UTF-8?q?=E6=AE=B5=E6=9E=84=E5=BB=BA=E4=BC=98=E5=8C=96=20Docker=20?= =?UTF-8?q?=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index eba68f2..c1629b6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,31 @@ +# 多阶段构建:先构建 Hexo 博客 +FROM node:18-alpine AS builder + +WORKDIR /app + +# 复制 package.json 和 pnpm-lock.yaml +COPY blog/package.json blog/pnpm-lock.yaml ./ + +# 安装 pnpm +RUN npm install -g pnpm + +# 安装依赖 +RUN pnpm install + +# 复制 Hexo 源码 +COPY blog/ ./ + +# 构建静态文件 +RUN pnpm run build + # 使用官方 Nginx 镜像作为基础 FROM nginx:alpine # 删除默认的 Nginx 配置 RUN rm -rf /usr/share/nginx/html/* -# 将构建好的静态文件复制到 Nginx 目录 -COPY blog/public /usr/share/nginx/html +# 从构建阶段复制静态文件到 Nginx 目录 +COPY --from=builder /app/public /usr/share/nginx/html # 暴露 80 端口 EXPOSE 80