问题:使用docker-compose在Windows Container中为sql db创建命名卷时,如何消除无效卷指定错误?

我正在尝试使用 docker-compose 在 Windows 容器中为 sql db 创建一个命名卷。

我不断收到错误消息:“严重代码描述项目文件行抑制状态错误构建 webpresentation 重新创建 dockercompose6946136170613312467_webpresentation_1 ... 创建 dockercompose6946136170613312467_db_1 ... 创建 dockercompose6946136170613312467_db3614467676 错误:for 06dockercompose6946136170613312467_db_1 ... _db_1 无法为服务 db 创建容器:无效卷规范:'dockercompose6946136170613312467_sqlvolume:/var/opt/mssql:rw' 正在重新创建 dockercompose6946136170613312467_webpresentation_1 ... 完成错误:对于 db 无法为服务 db 创建容器:无效的卷规范:'dockercompose6946136170613312467_sqlvolume:/var/opt/mssql:rw' 启动项目时遇到错误..

有关更多故障排除信息,请转到http://aka.ms/DockerToolsTroubleshootingdocker-compose C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.Docker.Sdk\build \Microsoft.VisualStudio.Docker.Compose.targets 363“

这是我的 docker-compose 文件:

    version: '3.4'

services:
  webpresentation:
    image: webpresentation
    build:
      context: .
      dockerfile: WebPresentation\Dockerfile

  db:
    image: microsoft/mssql-server-windows-express
    environment:
      ACCEPT_EULA: Y
      SA_PASSWORD: Test1
    ports:
      - "1433:1433"
    volumes:
      - sqlvolume:/var/opt/mssql

volumes:
  sqlvolume:

我还应该提到,我使用 Visual Studio 的 Docker 工具来设置这个项目,这里也是 docker-compose.override.yml 文件:

version: '3.4'

services:
  webpresentation:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    ports:
      - "80"
networks:
  default:
    external:
      name: nat

谁能指出我如何消除这个错误的正确方向?谢谢!

解答

如果其他人遇到这个问题,在我做了一个docker volume ls并意识到实际的卷名有一个自动生成的“dockercompose”前缀之后,该项目在 Visual Studio 中成功构建。我在 db 的卷定义中使用了指向硬盘驱动器上文件夹的更直接路径。然后我用新名称替换了“sqlvolume”的每个实例。我完整的 docker-compose 文件如下:

version: '3.4'

services:
  webpresentation:
    image: webpresentation
    build:
      context: .
      dockerfile: WebPresentation\Dockerfile

  db:
    image: microsoft/mssql-server-windows-express
    environment:
      ACCEPT_EULA: Y
      SA_PASSWORD: Test1
    ports:
      - "1433:1433"
    volumes:
      - "C:\\ProgramData\\Docker\\volumes\\dockercompose6946136170613312467_sqlvolume:c:\\mssql"

volumes:
  dockercompose6946136170613312467_sqlvolume:
Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐