我正在尝试使用docker-compose为Windows容器中的sql db创建命名卷。
我一直收到错误:“严重程度代码说明项目文件行抑制状态错误构建webpresentation重新创建dockercompose6946136170613312467_webpresentation_1 ...创建dockercompose6946136170613312467_db_1 ...创建dockercompose6946136170613312467_db_1 ...错误错误:对于dockercompose6946136170613312467_db_1无法为服务db创建容器:无效的卷规范:' dockercompose6946136170613312467_sqlvolume:/ var / opt / mssql:rw'正在重新创建dockercompose6946136170613312467_webpresentation_1 ...已完成错误:for db无法为服务db创建容器:无效的卷规范:'dockercompose6946136170613312467_sqlvolume:/ var / opt / mssql:rw'在启动时遇到错误项目..
有关更多疑难解答信息,请转至http://aka.ms/DockerToolsTroubleshooting docker-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
之后,项目在Visual Studio中成功构建,并意识到实际的卷名有一个自动生成的“dockercompose”前缀。我在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: