Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将bacpac文件还原到SQL Server linux docker容器?_Sql Server_Linux_Docker_Docker Compose_Sql Server Linux - Fatal编程技术网

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

Sql server 如何将bacpac文件还原到SQL Server linux docker容器?,sql-server,linux,docker,docker-compose,sql-server-linux,Sql Server,Linux,Docker,Docker Compose,Sql Server Linux,我正在尝试为Docker设置一个集成测试环境。我们需要将bacpac恢复到我们的mssql server linux:latest映像,以便我们可以基于数据集运行测试 我的撰写文件如下所示: version: '3' services: projectweb: image: projectweb build: context: . dockerfile: Project\Dockerfile

我正在尝试为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
我不需要在容器的生命周期之后将对数据库的更改持久化。我只需要编写脚本,将数据输入其中。我对docker或SQL Server for Linux没有太多经验。我假设我需要等待容器初始化、DB设置并启动,然后执行一个脚本,从tmp文件夹读取数据库bacpac。据我所知,我应该使用sqlpackage,但这不是吗?我是否需要另一个包含此SSDT/sqlpackage的容器?我可以将软件包安装到容器中吗


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

这一问题现已得到解决。微软有一个适合Linux的sql包。这可以安装到自定义映像中

sqlpackage.exe
需要windows,因此需要windows容器(或其他windows计算机)将bacpac部署到Linux或Linux容器上的SQL Server。您可以从数据库备份而不是使用bacpac进行还原,以避免Windows依赖关系。确定。bak文件对我们来说真的不起作用——因为它是数据的SQLAzure——而且很确定我们无法从中获取bak文件。不过,我猜肯定还有其他选择,而不是bacpac@DanGuzman我很清楚,以前有一种方法可以通过linux上的sqlpackage实现这一点?根据github线程,MS当前已删除?可能曾经有一个Linux版本可用,但当前不可用。微软正在加强对开源跨平台数据库工具的支持,但仍在进行中。我希望sqlpackage或者它的等价物将来可以在Linux上使用,但是什么时候可以使用,这是任何人的猜测。目前,sqlpackage需要Windows。