如何将 bacpac 文件还原到 SQL Server linux docker 容器?

Gra*_*ler 5 linux sql-server docker docker-compose sql-server-linux

我正在尝试为 Docker 设置集成测试环境。我们需要将 bacpac 恢复到我们的mssql-server-linux:latest图像,以便我们可以基于数据集运行测试。

我的撰写文件如下所示:

version: '3'

services:
    projectweb:
        image: projectweb
        build:
            context: .
            dockerfile: Project\Dockerfile
        depends_on:
            - db
    db:
        image: "microsoft/mssql-server-linux"
        environment:
            SA_PASSWORD: "MyVerySecurePassword"
            ACCEPT_EULA: "Y"        
        volumes:
            - ./database:/tmp
Run Code Online (Sandbox Code Playgroud)

我不需要对数据库的更改在容器的生命周期之后持久化。我只需要编写脚本将数据放入其中。我对 Linux 的 docker 或 SQL Server 没有很多经验。我假设我需要等待容器初始化和数据库设置并启动,然后执行从 tmp 文件夹读取数据库 bacpac 的脚本。据我所知,我应该使用 sqlpackage 但这似乎不在容器中?我是否需要另一个包含此 SSDT/sqlpackage 的容器?我可以将 splpackage 安装到容器中吗?

导入 bacpac 数据的最佳方法是什么?

Gra*_*ler 3

现在这个问题已经解决了。Microsoft 有一个适合 Linux 的 sql 包。这可以安装到自定义映像中。https://learn.microsoft.com/en-us/sql/tools/sqlpackage?view=sql-server-2017