在使用node官方docker镜像部署node应用时,应用需要npm的scripts中运行bower install 来安装前端包,但是用docker 构建时失败,提示 permission deined. 因为官方镜像的默认用户叫node,所以才会出现没有root权限来运行bower。
解决办法只需要在执行npm 脚本时加上 --unsafe-perm,如: npm --unsafe-perm install,这样scripts中的脚本就会拥有root权限,从而执行一些需要root权限的脚本。
该参数说明如下:
unsafe-perm
- Default: false if running as root, true otherwise
- Type: Boolean
Set to true to suppress the UID/GID switching when running package scripts. If set explicitly to false, then installing as a non-root user will fail.