使用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安装就解决权限问题。