Skip to content

Instantly share code, notes, and snippets.

@yano3nora
Created May 5, 2023 07:51
Show Gist options
  • Save yano3nora/b0d7601287e2422b7920940153d68f1d to your computer and use it in GitHub Desktop.
Save yano3nora/b0d7601287e2422b7920940153d68f1d to your computer and use it in GitHub Desktop.
[dev: Dockerize MS SQL Server] old ref. #dev

Dockerize Microsoft SQL Server

実行と接続 Docker - docs.microsoft.com
Microsoft SQL Server - hub.docker.com
Linux および macOS に Microsoft ODBC Driver for SQL Server をインストールする
Ubuntu の無人インストール用の SQL Server のインストール スクリプト
Install Microsoft SQL Drivers for PHP 7 in Docker
DockerでSQLServerを触ってみる

sa ユーザパスワードを厳格にしないとデーモンが立ち上がらない Fxxk Off セキュアなデータベースサーバなので注意。あと利用 DB の指定 & 作成を環境変数から行えない クソザコ 仕様なため開発環境ではデータベースを新規作成する必要あり。くそだるい。

# SQL Server さまはメモリ 2GB が必須要件な kusozako DB なので ...
$ docker-machine stop
$ VBoxManage modifyvm default --memory 4096
$ docker-machine start
# docker-compose.yml
version: '3'
services:
  db:
    image: mcr.microsoft.com/mssql/server:2017-latest
    # デーモン起動前に sqlcmd の PATH 通し
    command: >
      bash -c "
      ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd &&
      /opt/mssql/bin/sqlservr
      "
    environment:
      ACCEPT_EULA: 'Y'
      MSSQL_PID: 'Developer'
      MSSQL_SA_PASSWORD: $DB_PASSWORD
      MSSQL_TCP_PORT: '1433'
      # UTF-8 対応は 2019 からとかいうクソザコ
      MSSQL_COLLATION: 'Japanese_CS_AS_KS_WS'
    ports:
      - "1433:1433"
    volumes:
      - mssql_data:/var/opt/mssql
volumes:
  mssql_data:
# Dockerfile for PHP
# PHP コンテナにて sqlsrv ドライバを有効化
#
# Settings for sqlsrv, pdo_sqlsrv extension.
RUN apt-get update && apt-get install apt-transport-https -y
RUN curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \
  && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN apt-get update && apt-get install unixodbc-dev -y
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y mssql-tools msodbcsql17
RUN pecl install sqlsrv pdo_sqlsrv \
  && docker-php-ext-enable sqlsrv pdo_sqlsrv
# 初回の create database.
$ docker-compose exec db bash
$ sqlcmd -U sa -P $MSSQL_SA_PASSWORD -Q 'create database my_database;'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment