Microsoft はドキュメントと共にsqlpackage でこれのサポートを実装したようです!
コンテナーに sqlpackage を追加する必要があります。
こちらからダウンロードできます。(オプションで、ここに Linux パッケージへの直接リンクがあります。変更されないことを願っています)
以下は、これを Windows マシンから実行するための手順です。明らかに、動作させるための最低限の手順です。パスワードを変更してください。おそらくこれを docker-compose.yml に入れて再利用してください。
上記のパッケージをフォルダー 'c:\sqlpackage' に解凍し (私の Windows docker run では相対パスが許可されていません)、次のように bacpac を使用してコンテナーにマウントします。
docker run -d -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Asdf1234" -v c:\sqlpackage:/opt/sqlpackage -v c:\yourdb.bacpac:/tmp/yourdb.bacpac -p 1433:1433 --name mssql-server-example microsoft/mssql-server-linux:2017-latest
*nix ユーザーが代わりに実行できるものは次のとおりです。
docker run -d -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Asdf1234' -v ./sqlpackage:/opt/sqlpackage -v ./yourdb.bacpac:/tmp/yourdb.bacpac -p 1433:1433 --name mssql-server-example microsoft/mssql-server-linux:2017-latest
最後に、コンテナにアタッチして実行します。
/opt/sqlpackage/sqlpackage /a:Import /tsn:. /tdn:targetdbname /tu:sa /tp:Asdf1234 /sf:/tmp/yourdb.bacpac
この後、SSMS を使用して localhost、ユーザー名、およびパスワードを上記で指定したとおりに接続できるようになり、「targetdbname」が表示されます。これらは主に私が自分のために書いたメモですが、他の人もそれらを使用できると確信しています.