I have a node:alpine
Docker image. When I run the image as a root user, I have no problems, but when I use another user and I try to do npm install
I receive a lot of errors from package extraction:
npm WARN tar EPERM: operation not permitted, futime
After 5000 WARN messages, I see this on the npm install log:
npm timing action:extract Completed in 276816ms
npm timing action:finalize Completed in 172ms
And no more, the npm install process is completely hang.
Anybody knows this error and know how to avoid it?
Solution for WSL:
I solved this by mounting C:/ with default permissions bound to my user instead of root. I followed the guide here: https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/
sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=111
This mounts all files on the C drive as my user instead of root. Therefore sudo is not needed to run npm i
I had this in Windows Linux Subsystem too, after moving a project from Windows to Linux. I failed to fix it with
rm -rf node_modules
rm package-lock.json
npm cache clear --force
chown -R username:username *
npm install
None of this worked.
futime
errors are caused by the tar
utility not having enough rights to perform the necessary actions to expand the .tar files used by npm and the node modules.
In the case of Alpine Linux, you may need to unpack as root and then chown
the files, or create a folder owned as the user with the right permissions.
For Windows Subsystem for Linux, it doesn't seem to work with folders under /mnt/c
and refuses to change permissions. Setting them in Linux has no effect, and setting them in Windows doesn't seem to make any difference either - adding full control to the 'Everyone' principle doesn't solve this.
(probable) solution for Alpine:
sudo mkdir project_folder
sudo chown username project_folder
cd project_folder
...
Solution for WSL:
Move the folder into the WSL folder, eg. mv project ~\
so that permissions work correctly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With