请教个问题,在本地执行npm run 命令成功,在服务器上执行失败
nodejs吧
全部回复
仅看楼主
level 3
话不多说,直接上代码:
这条命令,是我用于启动项目的,该项目启动成功后,会运行一个postgresql的docker容器。我本地(windows)执行npm run start,成功,容器会跑起来。但是,当我把项目部署到服务器(linux centos)上时,执行npm run start会失败,报错如下:
但是执行node scripts/cli.js ...是可以启动容器的。这说明代码没问题,差别在于npm run start 和 node script...请教了一些朋友,根据报错提示可以知道跟docker权限有关,我这里服务器是root用户,所以啥权限都有。然后有朋友告诉我:在服务器上执行npm命令,默认不是以root用户,出于安全考虑,若要以root用户执行,需加上--unsafe-perm(这点在npm官方文档上有讲)我查了下,该参数直到npm 6还有,从npm 7开始就废除了。从npm 7开始,以登录用户身份执行,我的项目用的是npm 8,所以,我以root用户登录服务器,应该是不会有权限问题的。搞到这就不知道原因了,有没有
懂哥
指教下,谢谢
2022年09月02日 03点09分 1
level 7
config..json你没权限读取吧,你需要获得那个文件的权限
2022年09月02日 05点09分 2
level 7
试一下sudo chown -R $(whoami) config.json
2022年09月02日 05点09分 3
试过了,还是不行,执行这条命令后,再执行项目命令,还是跟之前一样的报错
2022年09月07日 02点09分
@金鱼记忆大师😇 docker命令有加sudo吗
2022年09月07日 04点09分
@原初的欲求nice 搞定了,原因是npm 8以上,默认以项目根目录的用户身份执行,并非root用户
2022年09月08日 12点09分
1