Я надеюсь, что вы решили свою проблему, но на тот случай, если кто-то еще попадет в эту ветку.У меня была такая же или, по крайней мере, очень похожая проблема.Я запускаю контейнеры Windows на Windows 10 Enterprise.
Это сработало:
docker run --rm --name mssql -d -p 1433:1433 -e sa_password=myPassword -v ./data:C:/db/ -e ACCEPT_EULA=Y -e attach_dbs="[{'dbName':'myDB','dbFiles': ['c:\\db\\DB_Data.MDF', 'c:\\db\\DB_Log.LDF']}]" microsoft/mssql-server-windows-developer
Но в моем docker-compose этого не произошло, я получил ту же ошибку:
Снимок экрана
version: '3.7'
services:
mssql:
image: microsoft/mssql-server-windows-developer
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=myPassword
- MSSQL_PID=Enterprise
- attach_dbs="[{'dbName':'myDB','dbFiles'['c:\\db\\DB_Data.MDF','c:\\db\\DB_Log.LDF']}]"
ports:
- '1433:1433'
volumes:
- d:\dockershare\data:c:/db
Я долго искал и не нашел никого, кто бы сталкивался с подобной проблемой, в большинстве обсуждений я обнаружил ошибку "ConvertFrom-Json: Нераспознанная escape-последовательность"прочееПри аварии я увидел файл docker-compose, в котором файл attach_db не был инкапсулирован в "".Может быть, кто-нибудь может объяснить, почему.
Я изменил эту строку:
- attach_dbs="[{'dbName':'myDB','dbFiles'['c:\\db\\DB_Data.MDF','c:\\db\\DB_Log.LDF']}]"
На это:
- attach_dbs=[{"dbName":"myDB","dbFiles"["c:\\db\\DB_Data.MDF","c:\\db\\DB_Log.LDF"]}]
И теперь это работает.