diff --git a/Dockerfile b/Dockerfile index 42ad55a..cdd20f9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,11 @@ WORKDIR /src # --ignore-scripts:依赖 postinstall(esbuild/vue-demi)非必需且被 pnpm 拦截, # esbuild 走 optionalDependencies 自带平台二进制;跳过脚本更安全、可复现。 RUN corepack enable && corepack prepare pnpm@11.21.0 --activate +# pnpm 11 默认拒绝发布不足 1 天的依赖(供应链策略):锁文件里 tailwind v4 的 +# @csstools 传递依赖偶尔踩中,且 pnpm build 的 run 前依赖自检会隐式再跑一次 +# install,命令行参数覆盖不到。pnpm 11 该配置只认 pnpm-workspace.yaml(.npmrc/ENV 均不读); +# 镜像构建有 frozen-lockfile(版本钉死)+ --ignore-scripts(不执行依赖脚本)两道闸,可放开。 +RUN printf 'minimumReleaseAge: 0\n' > pnpm-workspace.yaml COPY web/package.json web/pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile --ignore-scripts COPY web/ ./ diff --git a/docker-compose.yml b/docker-compose.yml index f588c04..835d747 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,6 +27,8 @@ services: OT_MASTER_KEY: ${OT_MASTER_KEY:?请在 .env 中设置 OT_MASTER_KEY} OT_ADMIN_PASSWORD: ${OT_ADMIN_PASSWORD:?请在 .env 中设置 OT_ADMIN_PASSWORD} OT_JWT_SECRET: ${OT_JWT_SECRET:?请在 .env 中设置 OT_JWT_SECRET} + # 生产 fail-fast 要求:refresh cookie 必须标记 Secure(服务在 TLS 反代后暴露) + OT_JWT_COOKIE_SECURE: "true" # 入口脚本据此 chown 数据目录并降权运行(默认 1000:1000) OT_UID: "${OT_UID:-1000}" OT_GID: "${OT_GID:-1000}"