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