From c88b081fbb2e8f23b6db3d7a7b2f5abedff5551a Mon Sep 17 00:00:00 2001 From: Vaica <94612053+zqlit@users.noreply.github.com> Date: Sun, 21 Jun 2026 23:10:12 +0800 Subject: [PATCH] 2310 --- write-server/Dockerfile | 5 +++++ write-server/src/lib/config.ts | 23 ++++------------------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/write-server/Dockerfile b/write-server/Dockerfile index d8ddb8cd..7fc76366 100644 --- a/write-server/Dockerfile +++ b/write-server/Dockerfile @@ -16,6 +16,10 @@ RUN npm ci --only=production && \ FROM node:20-alpine AS builder WORKDIR /app +# 设置构建时环境变量(Turbopack 会内联这些值) +ENV BLOG_ROOT=/blog +ENV NODE_ENV=production + # Copy package files COPY package.json package-lock.json ./ @@ -64,6 +68,7 @@ EXPOSE 8016 ENV NODE_ENV=production ENV PORT=8016 ENV HOSTNAME="0.0.0.0" +ENV BLOG_ROOT=/blog # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ diff --git a/write-server/src/lib/config.ts b/write-server/src/lib/config.ts index 04180f51..d346452e 100644 --- a/write-server/src/lib/config.ts +++ b/write-server/src/lib/config.ts @@ -1,25 +1,10 @@ import path from "path"; import os from "os"; -// 获取博客根目录 -// 优先级:BLOG_ROOT 环境变量 > Docker 容器检测 > 上级目录 -function getBlogRoot(): string { - // 1. 环境变量(非 Docker 部署时使用) - const envRoot = process.env.BLOG_ROOT; - if (envRoot && envRoot.trim() && envRoot !== "undefined") { - return path.resolve(envRoot); - } - - // 2. Docker 容器检测:cwd 为 /app 时,博客挂载在 /blog - if (process.cwd() === "/app") { - return "/blog"; - } - - // 3. 回退到上级目录 - return path.resolve(process.cwd(), ".."); -} - -export const BLOG_ROOT = getBlogRoot(); +// 博客根目录 +// Docker 构建时 BLOG_ROOT=/blog 已被 Turbopack 内联 +// 本地开发时回退到上级目录 +export const BLOG_ROOT = process.env.BLOG_ROOT || path.resolve(process.cwd(), ".."); export const CONTENT_DIR = path.join(BLOG_ROOT, "content", "posts"); export const STATIC_DIR = path.join(BLOG_ROOT, "static");