Docker - 撰写顶级卷无法找到路径

时间:2018-05-31 09:39:14

标签: docker docker-compose

我有一个非常简单的docker-compose设置,它正在我的同事计算机(*)上工作,但由于某些不明原因,它对我的​​工作不起作用。

这是我的docker-compose.yml

version: '3.3'
services:

    ... there are other services that are starting successfully ...

    reporting:
      image: microsoft/dotnet:2.0-runtime
      hostname: reporting
      container_name: reporting
      volumes:
        - publish-output:/app
        command: dotnet /app/MocksGenerator.dll -s ${MSNAME_R} -p ${MSPORT_R} -c http://${CHOST} -m http://${MBHOST}${MSNAME_R}:${MBPORT}
        networks:
          - consul
        links:
          - mbreporting
          - consul
          - fabio
        depends_on:
          - mbreporting
          - consul
          - fabio
networks:
  consul:

volumes:
  publish-output:
    driver: local
    driver_opts:
      device: /mnt/d/Repositories/microservices.mocking/docker/PublishOutput
      o: bind

当我尝试使用“docker-compose up”启动它时,我从docker-compose收到错误。

  

错误:报告无法启动服务报告:安装卷时出错'/ var / lib / docker / volumes / betsreporting_publish-output / _data':使用选项安装卷时出错:type =''device ='/ mnt / d / Repositories / microservices.mocking / docker / PublishOutput'o ='bind':没有这样的文件或目录

运行ls -la /mnt/d/Repositories/microservices.mocking/docker会产生

drwxrwxrwx 0 root root 4096 May 30 16:12 PublishOutput

所以主机目录确实存在,但是docker-compose由于某种原因似乎无法找到它。为什么呢?

(*)我的同事正在使用类型绑定的卷,我尝试过,因为同样的原因也没用,所以我决定更改卷类型,但后来呢似乎根本问题是docker-compose似乎无法找到主机目录。

1 个答案:

答案 0 :(得分:0)

重置Docker守护程序凭据共享设备窗口后提示,然后在重新共享磁盘后它再次开始工作,即使它之前也是共享的。我怀疑共享磁盘到Docker不适用于共享完成后创建的目录(因此需要重新共享)但我不完全确定,会检查与docker引擎的人。

还有一件事,我还试图在Windows上从Linux子系统运行它并且它不起作用,我怀疑Linux子系统和Windows的权限可能不匹配或者docker引擎可能有bug,甚至导致在重新共享错误后,我不得不从Powershell运行它。