npm:后安装未在 docker 中运行

Posted

技术标签:

【中文标题】npm:后安装未在 docker 中运行【英文标题】:npm : Postinstall not running in docker 【发布时间】:2018-05-24 16:33:10 【问题描述】:

我有一个 npm 包(npm v 5.5.1,节点版本为 9.2.0)。如果我在本地机器上运行npm install,则执行 package.json 中定义的postinstall,但如果我在 Docker 文件中运行相同的命令RUN npm install,即当命令在容器内运行时,则postinstall 步骤不执行。任何输入可能是这里的问题?

【问题讨论】:

【参考方案1】:

所选答案的另一个选项: 您可以将此行添加到您的 dockerfile 以在容器内配置您的 npm 配置(从而允许执行安装后脚本):

FROM ...
RUN npm config set unsafe-perm true

【讨论】:

【参考方案2】:

尝试使用--unsafe-perm 选项运行安装。以 root 身份运行时,npm 不会运行任何脚本。

或者,在 Dockerfile 中创建一个用户并切换到该用户:

FROM ...
RUN groupadd -r app && useradd -r -g app app
USER app

【讨论】:

以上是关于npm:后安装未在 docker 中运行的主要内容,如果未能解决你的问题,请参考以下文章

转 Dock 外 命令解析

php -S localhost:8000 未在 node.js 中运行

Docker实践

正确安装后,fabric JS 未在节点上运行

markdown 显示未在Docker中运行的容器

ubuntu中Docker 容器正在运行,但未在 docker ps 中显示