In Docker for Windows, permissions denied for mkdir/chown

I'm working on developing a ghost blog and deploying it as a docker container. Since one of the goals of my project is to develop themes and other things with live data, I've created a volume mount for the /var/lib/ghost directory as suggested by the ghost docker image.

The ghost docker image mounts the drive fine, but when it tries to chown the file, it gets a permission denied error. I'm running the Creator update of Windows 10, and the latest Docker for Windows (ie, Windows 10 Pro versin 1703, and Docker version 17.03.1-ce-win5)

As a test, I followed this procedure, at both home and work (where I'm on the previous version of windows 10):

  1. Create a Project\site directory in C:\users\joe\
  2. Place the docker-compose.yml file below the directory:
  3. Run docker-compose up

docker-compose.yml

version: '3'
services:
  blog:
    image: ghost
    volumes:
      - ./blog:/var/lib/ghost
    ports:
      - "2368:2368"

On my work machine, it creates the blog directory, and populates it with the themes and content as expected from a ghost blog.

On my home machine, I get this error:

ERROR: for blog Cannot start service blog: error while creating mount source path '/C/Users/joe/Projects/site/blog': mkdir /C/Users/joe/Projects/site/blog: permission denied ERROR: Encountered errors while bringing up the project.

if I make the directory myself, and run docker-compose.yml again, I get this error:

blog_1 | chown: changing ownership of '/var/lib/ghost': Permission denied

site_blog_1 exited with code 1

Mounting directories definitely works, I've run the alpine ls /data example shown on the settings for shared drives in Docker for Windows.

I've compared the settings in docker, on the virtual networks, on the directories between home and work -- the only differences I can find are because work is on a Domain, and has a different username, and that my version of windows is 1607.

I don't know if this is a bug, a bad interaction between current windows && docker, or something I've done wrong locally. I admit I'm leaning toward the latter because I can find no documentation about this anywhere.

Answers

this issue (which I somehow missed) https://stackoverflow.com/questions/43755922/error-mounting-a-config-file-into-the-container

answers the question.

I unshared C, reshared it and still had the problem. I clicked "reset credentials" and then reshared it (entering my password) and it worked.

Posted on by JoeTortuga