在使用 docker-compose 和 boot2docker 执行命令之前挂载卷

Mounting volumes before executing commands with docker-compose and boot2docker

我正在使用 OSX 并且我安装了 Kitematic,它使用 boot2docker 到 运行 docker 和容器。我创建了一个容器,需要在 docker 文件夹下安装一些本地文件夹,并使用 docker-compose:

web:
 build: .
 ports:
  - "9001:9001"
  - "9002:9002"
 volumes:
  - /projects/test /somepath
  - /projects/test2 /someotherpath
 command: ant clean all;./server.sh start

当我 运行 docker-compose up 时,似乎在执行命令阶段之前没有安装卷,因为我收到错误日志,/somepath/someotherpath 不能找到了。

我不明白docker-命令配置有什么问题。

我认为您在映射卷时需要将 space 替换为冒号。例如:

kafka:
  image: wurstmeister/kafka:0.8.2.1
  hostname: kafka
  ports:
    - "9092:9092"
  links:
    - zookeeper:zk
  environment:
    KAFKA_ADVERTISED_HOST_NAME: kafka
    KAFKA_ADVERTISED_PORT: 9092
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock