Docker Toolbox on Windowsからdocker-composeを使う環境でコンテナが立ち上がらないときの対応(invalid bind mount spec)

Toolbox on Windowsを使用している環境でdocker-composeのコンテナが上手く起動しなかったため、対応を残しておきます。

対象

OS: Windows 10
docker-compose: version 1.9.0, build 2585387

エラーが起きたdocker-compose.ymlファイル

version: '2.1'

services:
  target:
    build:
      context: .
      dockerfile: Dockerfile.development
      args:
        - APP_HOME=/your/project/path/
    command: rails s -p 3000 -b 0.0.0.0
    ports:
      - "3000:3000"
    volumes:
      - .:/your/project/path/
    links:
      - db
    depends_on:
      - db

  db:
    environment:
      MYSQL_ROOT_PASSWORD: password
    image: mysql
    ports:
      - '3306'

エラーメッセージ

ERROR: for target  Cannot create container for service target: {"message":"invalid bind mount spec \"C:\\\\Users\\\\UserName\\\\ProjectFolder:/your/project/path/:rw\": invalid volume specification: 'C:\\Users\\UserName\\ProjectFolder:/your/project/path/:rw'"}
[31mERROR[0m: Encountered errors while bringing up the project.

対応手順

  1. 仮想マシンの共有フォルダーに対象のPathを設定する
    Oracle VM VirtualBox マネージャー => [詳細] => [共有フォルダー] => [新規フォルダーを追加します。]
    docker_vm_add_new_shared_folder

  2. 以下の環境変数を設定する

COMPOSE_CONVERT_WINDOWS_PATHS=0

これで再稼働させてやると意図する動きをしてくれるようになりました。

参考

Docker Compose volume mounts don't work with Docker Toolbox running on Windows – Docker Toolbox – Docker Forums