构建Docker镜像时全局安装NPM包提示permission denied无权限

full Docker npm install permission denied

使用NodeJS镜像node在构建Docker镜像时,总是在npm install -g <package_name>全局安装一些包会提权限被拒绝,虽然是以root用户构建,但仍然有这个错误。目前找到的解决方案就是把项目创建在宿主目录/root下,并多加一个环境变量ENV NPM_CONFIG_PREFIX=/root/.npm-global,然后重新构建镜像就不再提示没权限

关于NPM安装包其实在非容器环境下也很容易碰见权限问题,而yarn做为npm的改进优化替代方案,在使用yarn global add <package_name>全局安装不会遇到npm的问题,同时还有一种解决思路,如

npm install -g <package_name>

遇到权限问题,那么这样也能解决

yarn global add <package_name>
npm install -g <pacage_name>

就是先用yarn把npm全局安装的包预先安装一遍,然后再使用npm安装就解决权限问题。

分享

TITLE: 构建Docker镜像时全局安装NPM包提示permission denied无权限

LINK: https://www.qttc.net/545-docker-npm-install-permission-denied.html

NOTE: 原创内容,转载请注明出自琼台博客