【发布时间】:2019-04-07 13:23:32
【问题描述】:
我无法让我的 mssql-server-windows-express 容器化数据库在重新启动计算机后保留任何已创建的行。
它位于我使用 Visual Studio 2017 社区版的默认“启用 Docker 支持”复选框创建的项目中。我正在使用 Entity Framework Core 2 迁移来使用 ASP.NET Core 2.1 创建和更新数据库。
我觉得这个问题可能与 Docker for Windows 具有通常的路径语法有关,但这只是一种预感。
我尝试了很多不同的 Stackoverflow 和博客建议和路径,但数据永远不会保留。我现在必须寻求帮助。
以下是我尝试过的众多 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\\dockercompose4363425345347741_sqlvolume:c:\\var/opt/mssql"
volumes:
sqlvolume:
此文件编译,但重新启动后行不会保留。
version: '3.4'
services:
webpresentation:
image: webpresentation
build:
context: .
dockerfile: WebPresentation\Dockerfile
db:
image: microsoft/mssql-server-windows-express
container_name: myDbSqlExpress
environment:
ACCEPT_EULA: Y
SA_PASSWORD: Test1
'attach_dbs={"dbName":"MyDb","dbFiles":"C:\\ContainerData\\MyDb.mdf","C:\\ContainerData\\MyDb.ldf"}'
ports:
- "1433:1433"
volumes:
- "C:\\DockerData:c:\\ContainerData"
volumes:
sqlvolume:
name: myDb-sqlvolume
此文件出错:
错误 MSB4018 “GetServiceReferences”任务意外失败。 Microsoft.Docker.Utilities.CommandLineClientException: yaml.scanner.ScannerError:在扫描一个简单的键时 “C:\Projects\MyProject\MyApp\docker-compose.yml”,第 16 行, 第 7 列找不到预期的“:”
我在这里做错了什么?谁能帮我更正任一文件,以便在重新启动计算机后新创建的行仍然存在?
非常感谢!
【问题讨论】:
标签: docker asp.net-core docker-compose asp.net-core-2.1 docker-for-windows