Linux版SQL ServerをDockerで動かしたときにサーバの照合順序を変更したい
はじめに
他のデータベースにもれず、SQL ServerもDockerで動かすことが出来ます。
ただ、単純にDocker Hubのページのように
> docker run \ --name=mssql \ --hostname=my-docker-mssql \ -d \ -e 'ACCEPT_EULA=Y' \ -e 'SA_PASSWORD=mssqllinux@1' \ -p 1433:1433 \ microsoft/mssql-server-linux:latest
とやると言語やサーバの照合順序が英語(SQL_Latin1_General_CP1_CI_AS
)になってしまいます。
データベースの照合順序は作成時に指定できますしデータベース名に日本語を使わなければそうそう地雷を踏みぬくことも無いと思いますが、本番環境と異なっていると変なところで踏みぬいて嫌な感じになるので出来れば統一したいものです。
環境変数
さて、Docker Hubのページにはぱっと見
しか紹介されておらず、照合順序が変更できなさそうですがConfigure SQL Server settings with environment variables on Linuxを見るとかなりの設定が出来るようです。
というわけでこれが正解。
> docker run \ --name=mssql \ --hostname=my-docker-mssql \ -d \ -e 'ACCEPT_EULA=Y' \ -e 'SA_PASSWORD=mssqllinux@1' \ -e 'MSSQL_LCID=1041' \ -e 'MSSQL_COLLATION=Japanese_CI_AS' \ -p 1433:1433 \ microsoft/mssql-server-linux:latest
おわり