title: Serverless - Numpy - Unable to find good bind path format
body: <p>I've been beating on this for over a week and been through all sorts of forum issues and posts and cannot resolve. I'm trying to package numpy in a function, individually building requirements (I have multiple functions with multiple requirements that I'd like to keep separate). </p>
  
  <p><strong>Environment</strong>:<br>
  Windows 10 Home  </p>
  
  <p><strong>Docker Toolbox for Windows</strong>:</p>
  
  <pre><code>Client:
  Version:       18.03.0-ce
  API version:   1.37
  Go version:    go1.9.4
  Git commit:    0520e24302
  
  
  Built: Fri Mar 23 08:31:36 2018
   OS/Arch:       windows/amd64
   Experimental:  false
   Orchestrator:  swarm
  
  Server: Docker Engine - Community
   Engine:
    Version:      18.09.0
    API version:  1.39 (minimum version 1.12)
    Go version:   go1.10.4
    Git commit:   4d60db4
    Built:        Wed Nov  7 00:52:55 2018
    OS/Arch:      linux/amd64
    Experimental: false
  </code></pre>
  
  <p><strong>Serverless Version</strong>:</p>
  
  <pre><code>serverless version 6.4.1
  serverless-python-requirements version 6.4.1
  </code></pre>
  
  <p><strong>Directory Structure</strong>:</p>
  
  <pre><code>|-test
    |-env.yml
    |-serverless.yml
    |-Dockerfile
    |-functions
      |-f1
        |-index.py
        |-requirements.txt
        |-sub_function_1.py
        |-sub_function_2.py
      |-f2
        |-index.py
        |-requirements.txt
        |-sub_function_3.py
        |-sub_function_4.py
  </code></pre>
  
  <p><strong>serverless.yml</strong></p>
  
  <pre><code>service: test 
  plugins:
    - serverless-python-requirements
  custom:
    pythonRequirements:
      zip: true                  
      dockerFile: Dockerfile      
      dockerizePip: non-linux     
  provider:
    name: aws
    runtime: python3.6
    stage: dev
    environment: ${file(./env.yml):${opt:stage, self:provider.stage}.env}
    region: ${file(./env.yml):${opt:stage, self:provider.stage}.aws.region}
    profile: ${file(./env.yml):${opt:stage, self:provider.stage}.aws.profile}
  package:
    individually: true
  functions:
    f1:
      handler:index.handler
      module:functions/f1
    f2:
      handler:index.handleer
      module:functions/f2
  </code></pre>
  
  <p>I have my project files in C:\Serverless\test. I run <code>npm init</code>, followed by <code>npm i --save serverless-python-requirements</code>, accepting all defaults. I get the following on <code>sls deploy -v</code>. even though I've added C:\ to Shared Folders on the running default VM in VirtualBox, and selected auto-mount and permanent.</p>
  
  <p><img src="https://user-images.githubusercontent.com/24832609/50174470-811ddf00-02b7-11e9-9b46-208a0b395802.png" alt="image"></p>
  
  <p>If I comment out both dockerizePip and dockerFile I get the following as expected based on <a href="https://serverless.com/blog/serverless-python-packaging/" rel="nofollow noreferrer">here</a> and other SO posts:</p>
  
  <pre><code> Serverless: Invoke invoke
  {
      "errorMessage": "Unable to import module 'index'"
  }
  </code></pre>
  
  <p>If I comment out dockerfile I get:</p>
  
  <pre><code>Serverless: Docker Image: lambci/lambda:build-python3.6
  
        Error --------------------------------------------------
  
      error during connect: Get https://XXXXXX/v1.37/version: dial tcp
      XXXXXXXXXX: connectex: A connection attempt failed because the 
      connected party did not properly respond after a period of time, or
      established connection failed because connected host has failed to 
      respond.
  
      at dockerCommand (C:\Serverless\test\node_modules\serverless-python-requirements\lib\docker.js:20:11)
      at getBindPath (C:\Serverless\test\node_modules\serverless-python-requirements\lib\docker.js:100:3)
  </code></pre>
  
  <p><strong>With Dockerfile</strong></p>
  
  <pre><code># AWS Lambda execution environment is based on Amazon Linux 1
  FROM amazonlinux:1
  
  # Install Python 3.6
  RUN yum -y install python36 python36-pip
  
  # Install your dependencies
  RUN curl -s https://bootstrap.pypa.io/get-pip.py | python3
  RUN yum -y install python3-devel mysql-devel gcc
  
  # Set the same WORKDIR as default image
  RUN mkdir /var/task
  WORKDIR /var/task
  </code></pre>
  
  <p>.</p>
  
  <pre><code>Serverless: Building custom docker image from Dockerfile...
  Serverless: Docker Image: sls-py-reqs-custom
  
    Error --------------------------------------------------
  
    Unable to find good bind path format
  
       For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
  
    Stack Trace --------------------------------------------
  
  Error: Unable to find good bind path format
      at getBindPath (C:\Serverless\test\node_modules\serverless-python-requirements\lib\docker.js:142:9)
      at installRequirements (C:\Serverless\test\node_modules\serverless-python-requirements\lib\pip.js:152:7)
      at installRequirementsIfNeeded (C:\Serverless\test\node_modules\serverless-python-requirements\lib\pip.js:451:3)
  </code></pre>
  
  <p>If I move my project to C:\Users\, I get this instead:</p>
  
  <pre><code>Serverless: Docker Image: sls-py-reqs-custom
  Serverless: Trying bindPath /c/Users/Serverless/test/.serverless/requirements (run,--rm,-v,/c/Users/Serverless/test/.serverless/req
  uirements:/test,alpine,ls,/test/requirements.txt)
  Serverless: /test/requirements.txt
  
    Error --------------------------------------------------
  
    docker: Error response from daemon: create "/c/Users/Serverless/test/.serverless/requirements": "\"/c/Users/Serverless/test/.serv
  erless/requirements\"" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you in
  tended to pass a host directory, use absolute path.
  See 'docker run --help'.
  
  
       For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
  
    Stack Trace --------------------------------------------
  
  Error: docker: Error response from daemon: create "/c/Users/Serverless/test/.serverless/requirements": "\"/c/Users/Serverless/test/
  .serverless/requirements\"" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If y
  ou intended to pass a host directory, use absolute path.
  See 'docker run --help'.
  
      at dockerCommand (C:\Users\Serverless\test\node_modules\serverless-python-requirements\lib\docker.js:20:11)
      at getDockerUid (C:\Users\Serverless\test\node_modules\serverless-python-requirements\lib\docker.js:162:14)
  </code></pre>
  
  <p>I've seen the Makefile style recommendation from @brianz <a href="http://blog.brianz.bz/post/structuring-serverless-applications-with-python/" rel="nofollow noreferrer">here</a>, but I'm not sure how to adapt that to this (Makefiles are not my strong suit). I'm a bit at a loss as to what to do next and advice would be greatly appreciated. TIA. </p>