【发布时间】:2018-04-18 17:36:06
【问题描述】:
我在 Windows 10 上运行 适用于 Windows 18.03 的 docker。我在自己的 VS 2017 项目中使用 docker compose file 中的 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:
请注意,我已经尝试了 2 个已注释的命令行。第一个失败,说它没有找到文件,第二个只是用那个替换正常的命令行,所以容器没有启动(或没有保持运行)。
在我的本地驱动器上,我有一个 C:\myscustomservice\data 驱动器,其中包含文件 CreateLocalDB.sql。它安装在 C:\data 文件夹中的容器上(我在容器内运行 powershell 时看到它)。
sql 文件如下所示:
USE MASTER
CREATE DATABASE [customDB_test]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'customDB_test', FILENAME = N'C:\data\customDB_test.mdf' , SIZE = 1594752KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'customDB_test_log', FILENAME = N'C:\data\customDB_test.ldf' , SIZE = 3584KB , MAXSIZE = 2048GB , FILEGROWTH = 10240KB )
GO
有人知道我该怎么做吗?网上所有示例均来自linux容器,本图来自Windows Server容器。
【问题讨论】:
-
什么鬼?为什么对这个问题投反对票????这个地方已经不是以前的样子了......
标签: sql-server docker initialization docker-compose