我在 Windows 10 上为 Windows 18.03运行docker。我在我自己的 VS 2017 项目中使用来自docker compose 文件的microsoft/mssql-server-windows-express(来自 Windows Server)图像。我在这里尝试完成的是从脚本初始化数据库。我尝试在docker.compose.yml 中使用“命令”开关,但没有太大成功......
这是 docker compose 文件:
myscustomservice:
image: myscustomservice
build:
context: .\myscustomservice
dockerfile: Dockerfile
db:
image: microsoft/mssql-server-windows-express
volumes:
- ".\\data:C:\\data"
#command: --init-file C:\\data\\CreateLocalDB.sql
#command: "sqlcmd -U sa -P sUper45!pas5word -i C:\\data\\CreateLocalDB.sql"
restart: always
ports:
- "1533:1433"
environment:
- "sa_password=sUper45!pas5word"
- "ACCEPT_EULA=Y"
volumes:
db-data:
Run Code Online (Sandbox Code Playgroud)
请注意,我已经尝试了 2 个注释的命令行。第一个失败说它没有找到文件,第二个只是用那个替换普通的命令行,所以容器不会启动(或不会停留)。
在我的本地驱动器上,我有一个 C:\myscustomservice\data 驱动器,其中包含文件 CreateLocalDB.sql。它安装在 C:\data 文件夹中的容器上(我在容器内运行 powershell 时看到它)。
sql 文件如下所示:
USE MASTER …
Run Code Online (Sandbox Code Playgroud)