Sql server 在映像生成时将种子数据添加到基于Docker的Microsoft SQL Server

Sql server 在映像生成时将种子数据添加到基于Docker的Microsoft SQL Server,sql-server,docker,dockerfile,Sql Server,Docker,Dockerfile,注意:我认为这个问题与其他许多看起来相似的问题不同。请在结束前阅读 我正在尝试构建一个Docker容器映像,其中包含数据库的“用于测试”副本。我有一个脚本,将创建这个。运行大约需要60秒 我按照朱莉·勒曼(Julie Lerman)概述的步骤将其放入docker容器中。除了在创建容器实例时运行我的脚本之外,它工作得很好。这意味着在数据库完全就绪之前,我必须等待60秒 我希望在构建映像时产生60秒的成本,而不是在容器启动时(启动是在我的自动测试需要它快速准备好时!) 如何创建预运行数据库脚本的Sq

注意:我认为这个问题与其他许多看起来相似的问题不同。请在结束前阅读

我正在尝试构建一个Docker容器映像,其中包含数据库的“用于测试”副本。我有一个脚本,将创建这个。运行大约需要60秒

我按照朱莉·勒曼(Julie Lerman)概述的步骤将其放入docker容器中。除了在创建容器实例时运行我的脚本之外,它工作得很好。这意味着在数据库完全就绪之前,我必须等待60秒

我希望在构建映像时产生60秒的成本,而不是在容器启动时(启动是在我的自动测试需要它快速准备好时!)

如何创建预运行数据库脚本的Sql Server容器映像?


注意:我需要这是一个可重复的,自动构建过程。因此,我不太愿意使用
docker commit

此命令最终执行此操作:

RUN ( /opt/mssql/bin/sqlservr --accept-eula & ) | grep -q "Service Broker manager has started" && /createScript.sh
createScript.sh
是一个bash脚本,它在要运行的sql脚本上调用SqlCmd

关键是运行,所以它是在映像构建时完成的


来源:

此命令最终执行此操作:

RUN ( /opt/mssql/bin/sqlservr --accept-eula & ) | grep -q "Service Broker manager has started" && /createScript.sh
createScript.sh
是一个bash脚本,它在要运行的sql脚本上调用SqlCmd

关键是运行,所以它是在映像构建时完成的

资料来源: