Dan*_*ion 2 sql-server docker docker-compose
我的 docker-compose 需要启动三个不同的容器:1 个 MS SQL 和三个 Web 应用程序。这是我的 docker-compose.yml:
version: "3"
services:
gwammssql:
image: microsoft/mssql-server-windows-express
container_name: mssql-gwam
networks:
- gwam_net
ports:
- "1433:1433"
environment:
- sa_password=Password01
- ACCEPT_EULA=Y
- attach_dbs="[{'dbName':'GWAM','dbFiles':['C:\\temp\\GWAM.mdf','C:\\temp\\GWAM.ldf']}]"
volumes:
- C:/temp/:C:/temp/
gwam-app:
image: myrepo/web-app
container_name: gwamapp1
ports:
- 6001:6001
depends_on:
- gwammssql
environment:
- ASPNETCORE_URLS=http://*:6001
- App__DatabaseInfo__ConnectionString=Data Source=gwammssql;Initial Catalog='GWAM';User ID='sa';Password='Password01';Connect Timeout=30;Pooling=false;
- App__DatabaseInfo__SelectTopValue=15
- App__SecretsKeys__TokenHashingKey=iraiadsafAiDailgattaBaL
- App__ExternalServices__MQServerUrl=localhost
- App__ExternalServices__MQUserName=guest
- App__ExternalServices__MQPassword=guest
- App__ExternalServices__MQPort=5672
networks:
- gwam_net
gwam-login:
image: myrepo/micro-login
container_name: gwamlogin1
ports:
- 6002:6002
depends_on:
- gwammssql
environment:
- ASPNETCORE_URLS=http://*:6002
- App__DatabaseInfo__ConnectionString=Data Source=gwammssql;Initial Catalog='GWAM';User ID='sa';Password='Password01';Connect Timeout=30;Pooling=false;
- App__DatabaseInfo__SelectTopValue=15
- App__SecretsKeys__TokenHashingKey=iraihgnAiDailgattaBaL
- App__ExternalServices__MQServerUrl=localhost
- App__ExternalServices__MQUserName=guest
- App__ExternalServices__MQPassword=guest
- App__ExternalServices__MQPort=5672
networks:
- gwam_net
gwam-account:
image: myrepo/micro-account
container_name: gwamaccount1
ports:
- 6003:6003
depends_on:
- gwammssql
environment:
- ASPNETCORE_URLS=http://*:6003
- App__DatabaseInfo__ConnectionString=Data Source=gwammssql;Initial Catalog='GWAM';User ID='sa';Password='Password01';Connect Timeout=30;Pooling=false;
- App__DatabaseInfo__SelectTopValue=15
- App__SecretsKeys__TokenHashingKey=iradgnAgilgattaBaL
- App__ExternalServices__MQServerUrl=localhost
- App__ExternalServices__MQUserName=guest
- App__ExternalServices__MQPassword=guest
- App__ExternalServices__MQPort=5672
networks:
- gwam_net
networks:
gwam_net:
external:
name: nat
Run Code Online (Sandbox Code Playgroud)
问题是 attach_dbs 环境变量。我需要附加一个 .mdf 和 ldf 文件,但每次运行撰写文件时,我都会收到相同的输出,但未附加数据库...

小智 7
我希望你解决了你的问题,但以防万一其他人点击这个线程。我有相同或至少非常相似的问题。我在 Windows 10 Enterprise 上运行 Windows 容器。
这有效:
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
Run Code Online (Sandbox Code Playgroud)
但是在我的 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
Run Code Online (Sandbox Code Playgroud)
我搜索了很长一段时间,但没有发现任何人有类似的问题,大多数线程我都找到了有关“ConvertFrom-Json:无法识别的转义序列”内容的错误的地方。购买意外我看到一个 docker-compose 文件,其中 attach_db 没有封装在“”中。也许任何人都可以澄清原因。
我改变了这一行:
- attach_dbs="[{'dbName':'myDB','dbFiles'['c:\\db\\DB_Data.MDF','c:\\db\\DB_Log.LDF']}]"
Run Code Online (Sandbox Code Playgroud)
对此:
- attach_dbs=[{"dbName":"myDB","dbFiles"["c:\\db\\DB_Data.MDF","c:\\db\\DB_Log.LDF"]}]
Run Code Online (Sandbox Code Playgroud)
现在它起作用了。
| 归档时间: |
|
| 查看次数: |
2314 次 |
| 最近记录: |