moby: LCOW: chmod permission denied in a volume

Using https://github.com/linuxkit/lcow#setup Server Version: master-dockerproject-2017-11-30

docker run --rm -v temp1:/temp1 alpine sh -c "cd /temp1 && touch a && chmod +x a"

chmod: a: Permission denied

Real-world use case is npm i in a volume:

docker run --rm -v temp1:/temp1 node:8 sh -c "cd /temp1 && npm i leftpad"

npm ERR! path /temp1/node_modules/leftpad/package.json.2479725784
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall chmod
npm ERR! Error: EACCES: permission denied, chmod '/temp1/node_modules/leftpad/package.json.2479725784'

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 9
  • Comments: 27 (9 by maintainers)

Most upvoted comments

I really wonder about the usefulness of LCOW without chown and chmod - a lot of containers use these. Switching back to Linux containers, again…

@thaJeztah yeah, maybe I’m just being impatient! It just seems that every time I try to use LCOW (I think this was my 4th time so far this year) it doesn’t work. Very much looking forward to when it is working though - it will be great to ditch the Moby VM!

Yeah its kinda sad, my org. issue docker/for-win#1385 from Dec 5, 2017 is still relevant, since i need working locking support, which lcow/9p still misses. The reason is that many of my containers use sqlite in WAL mode as data storage. While we have the lcow EPIC moby/moby#33850, getting updates on fixes regarding its 9P implementation is kinda hard. All i could find was this linux-containers which is already over a year old.

I did wait for over 2 years for working LCOW, yet i have no clue if its 9P problems will ever be fully fixed, its literally useless to me if locking is not working or other features that break advanced containers. So i would like to see specific 9P related updates posted on the LCOW EPIC, with updates on what is being worked on and whats supposed to work, so i can judge when to restest stuff, instead of randomly grab the latest stuff and experiment with it.

PS: I also wonder if WSL2 will help LCOWs 9P ? I mean for WSL2 they need full filesystem compatibility, which they kinda already had in WSL1. So no clue why WSL1 worked, yet LCOW/9P still doesn’t?

Windows native LCOW (not Docker for Windows using moby VM) on RS5:

PS C:\vol> echo foo > file.txt
PS C:\vol> docker run -it --rm -v c:\vol:/test alpine /bin/sh
/ # ls -l /test
total 0
-rwxrwxrwx    1 root     root            12 Jun  6 20:40 file.txt
/ # chmod 755 /test/file.txt
/ # ls -l /test
total 0
-rwxr-xr-x    1 root     root            12 Jun  6 20:40 file.txt
/ # adduser john
Changing password for john
New password:
Retype password:
passwd: password for john changed by root
/ # chown john /test/file.txt
/ # ls -l /test
total 0
-rwxr-xr-x    1 john     root            12 Jun  6 20:40 file.txt
/ # cat /test/file.txt
 �f o o
 / #
PS C:\vol> docker run -it --rm -v c:\vol:/test alpine /bin/sh
/ # ls -l /test
total 0
-rwxr-xr-x    1 1000     root            12 Jun  6 20:40 file.txt
/ #
PS C:\vol>

@thaJeztah does Windows and/or LCOW now support chown/chmod/chattr and friends?

Any updates? Using server 1809 and docker 18.09.3 with lcow and still having issues with several containers. I would have expected someone to pick this up after it’s been an issue for a few years. LCOW is basically pointless at this stage until this is fixed.

Same problem booting up neo4j image on latest LCOW build. Any update on this issue?

chmod is a pretty common command to run. Many of the utilities I run in containers rely on the use of it. For example, I can’t run syncthing in an lcow container because both the configuration and synchronized data directories use chmod. I can live with the configuration being in the container instead of a volume, but realistically since both are stateful they should be in volumes.

The same behavior exists for named and bound volumes.