fix: 修 Docker 构建失败,compose 补上生产必需的 OT_JWT_COOKIE_SECURE
- pnpm 11 默认拒绝发布不足 1 天的依赖(供应链策略),锁文件里 tailwind v4 的 @csstools 传递依赖会踩中,导致镜像构建失败且 pnpm build 的 run 前自检(隐式 install)还会再次踩中。pnpm 11 该配置只认 pnpm-workspace.yaml(.npmrc/ENV 均不生效),在 web-builder 阶段写入 minimumReleaseAge: 0;frozen-lockfile + --ignore-scripts 两道闸仍在,放开无风险 - config.validate 的生产 fail-fast 要求 refresh cookie 必须 Secure, compose 漏配 OT_JWT_COOKIE_SECURE 导致新镜像启动即被拒绝
This commit is contained in:
1 parent
854d0f5d8c
commit
d357134e97
2 files changed
+7
No files matched your search
@@ -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/ ./
|
||||
|
||||
@@ -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}"
|
||||
|
||||
Reference in new issue
Block a user