【问题标题】:Why does npm not run prepublishOnly in docker?为什么 npm 不在 docker 中运行 prepublishOnly?
【发布时间】:2019-11-22 07:42:18
【问题描述】:

在开发用于在 ci/cd 环境中发布 npm 包的 monorepo 工具 (yamrt) 时,prepublishOnly 脚本未在某些运行器中运行。

所有测试都在 circleci image circleci/node:12 中通过

官方节点中相同的测试失败:12 图像

为什么?

【问题讨论】:

    标签: node.js docker npm continuous-integration monorepo


    【解决方案1】:

    事实证明,circleci/node:12 映像添加了一个用户来运行构建,而 node:12 没有用户,因此那里的进程以 root 身份运行。 npm 拒绝以 root 身份运行 prepublishOnly 脚本,并带有这条相当神秘的消息:

    npm WARN lifecycle yamrt-node12-test@0.0.1~prepublishOnly: cannot run in wd yamrt-node12-test@0.0.1 echo PREPUBLISHING NM (wd=.)
    

    一个明显的解决方法是将用户添加到 ci builder 映像中,这在任何情况下都当然是好的。

    RUN groupadd ciuser && useradd -ms /bin/bash ciuser -g ciuser
    USER ciuser
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多