You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下NX Monorepo部署Storybook失败求助

Monorepo中部署Storybook失败并触发NX Cloud客户端下载错误

在需将部分包发布至Nexus的Monorepo环境中,部署packages/design服务的Storybook任务失败,同时弹出「NX Cloud客户端不存在且无法下载新版本」提示。已尝试配置权限与代理但无效,相关错误信息和Dockerfile如下:

错误信息

>  NX   Running target storybook for project packages/design failed

   Failed tasks:

   - packages/design:storybook

   Hint: run the command with --verbose for more details.


>  NX   No existing Nx Cloud client and failed to download new version

   Nx Cloud was not used for this command.    You might be offline. Nx Cloud will be re-enabled when you are back online.

Dockerfile

FROM node:18-alpine

WORKDIR /usr/src/design

COPY package.json ./ 
COPY package-lock.json ./ 
COPY packages/design/package.json ./packages/design/package.json

RUN npm ci

ADD . /usr/src/design

RUN mkdir -p /.npm 
RUN chmod 775 -R /usr/src/design 
RUN chmod 775 -R /tmp/ 
RUN chmod 775 -R /.npm


ENV HTTP_PROXY "something" 
ENV HTTPS_PROXY "something" 
ENV NO_PROXY "something"

EXPOSE 8080

CMD ["npm", "run", "storybook:design"]
解决办法
  • 强制禁用NX Cloud:执行Storybook命令时添加--no-cloud参数,或在项目根目录nx.json中设置useCloud: false,彻底跳过NX Cloud的检测与下载流程。例如将storybook:design脚本改为nx storybook design --no-cloud。
  • 调整代理配置时机:当前Dockerfile中代理环境变量在npm ci之后设置,导致依赖安装和NX Cloud下载阶段无法使用代理。将ENV指令移至RUN npm ci之前,同时确认代理地址包含端口(如http://proxy.example.com:8080),且NO_PROXY包含Nexus及内部服务地址。
  • 修复文件权限顺序:ADD . /usr/src/design会覆盖之前设置的权限,将权限调整指令移至ADD之后;也可临时测试将chmod 775改为chmod 777(生产环境不建议),确保容器用户对相关目录有完整读写权限。
  • 配置本地缓存替代Cloud:在nx.json中设置cacheDirectory: ".nx/cache",让构建缓存从本地读取,无需依赖NX Cloud。
  • 检查Nexus依赖解析:确认packages/design的依赖中无NX Cloud私有包,或Nexus已正确代理NX公共包源,避免依赖下载失败间接导致Storybook任务失败。

内容的提问来源于stack exchange,提问作者Khassan Kambarov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:03:20