Permission Denied with Docker-Compose on Windows

I am currently learning Docker, with the book “Using Docker”. In chapter 5, the author switches from using docker run to using docker compose, which yields a permission denied error in my test application. Is there something I can do to have it work?

I use:

  • visual studio 2017 community edition with “docker toolbox” in an AMD system
  • How do I access Windows eventlog of a Docker container
  • export and import docker data containers
  • chown docker volumes on host (possibly through docker-compose)
  • Is there a way to get bazel to use sandbox directories when sandboxing is not supported?
  • How to get container image's tags list?
    • Windows 10 Home Edition, with the Docker Toolbox
    • Docker version is 1.12.0
    • Docker Compose version is 1.8.0, build d988a55

    DockerFile:

    FROM python:3.4
    
    RUN groupadd -r uwsgi && useradd -r -g uwsgi uwsgi
    RUN pip install Flask==0.10.1 uWSGI==2.0.8
    WORKDIR /app
    COPY app /app
    COPY cmd.sh /
    
    EXPOSE 9090 9191
    USER uwsgi
    
    CMD ["/cmd.sh"]
    

    docker-compose.yml:

    identidock:
      build: .
      ports:
        - "5000:5000"
      environment:
        ENV: DEV
      volumes:
        - ./app:/app
    

    The application is located under C:/Users/MyUserName, as required by the Toolbox, to have shared volumes working correctly.

    The working docker command, which starts the container and the web server, exposing it successfully to my Windows host:

    docker run -e "ENV=DEV" -p 5000:5000 identidock
    

    The docker-compose up command fails with the following message:

    Starting identidock_identidock_1
    
    ERROR: for identidock  Cannot start service identidock: oci runtime error: exec: "/cmd.sh": permission denied
    ←[31mERROR←[0m: Encountered errors while bringing up the project.
    

  • Debug nodejs app inside Docker container
  • Java + Github + Docker
  • Docker fedora hbase JAVA_HOME issue
  • Volume is not shared between nodes of Docker Swarm
  • How to pull docker image from docker hub private registry into Azure Container Service (ACS)?
  • Slowness in Docker container
  • One Solution collect form web for “Permission Denied with Docker-Compose on Windows”

    Try adding

    RUN chmod +x /cmd.sh
    

    to your Dockerfile after

    COPY cmd.sh /  
    

    According to that issue it seems that the docker client sets the needed exec permission for the file while docker compose does not

    It may be that the docker client sets the executable bit for all
    files, where as Compose does not (yet).

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.