相关疑难解决方法(0)

Docker 组合如何在 Windows 容器上初始化 SQL Server DB?

在 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)

sql-server initialization docker docker-compose

7
推荐指数
1
解决办法
8849
查看次数