2018年7月25日水曜日

DockerでAdminerとMicrosoft SQL Server 2017 Developer Editionのコンテナーを構築する

AdminerでブラウザからMicrosoft SQL Server 2017 Developer Editionを操作する事ができます。
Microsoft SQL Server 2017のDeveloper Editionについては以下を参照してください。
https://www.microsoft.com/ja-jp/sql-server/sql-server-2017-editions

○Adminerの画面

サーバ:mssqldb、ユーザ:sa、パスワード:mssql2017DEV!、データベース:masterを指定します。

○構築方法
1. Adminerイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t adminermssql .

Dockerfile
FROM ubuntu:16.04

ENV ACCEPT_EULA=Y \
  APACHR_RUN_DIR=/var/run/apache2 \
  APACHE_RUN_USER=www-data \
  APACHE_RUN_GROUP=www-data \
  APACHE_LOCK_DIR=/var/lock/apache2 \
  APACHE_LOG_DIR=/var/log/apache2
WORKDIR /opt
RUN apt-get update \
  && apt-get -y install wget apt-transport-https apache2 libapache2-mod-php7.0 php7.0-mbstring php-pear php7.0-dev build-essential libpcre3-dev make unixodbc-dev \
  && wget https://packages.microsoft.com/config/ubuntu/16.04/prod.list -O /etc/apt/sources.list.d/mssql-release.list \
  && apt-get update \
  && apt-get -y --allow-unauthenticated install msodbcsql17 \
  && pecl install sqlsrv \
  && pecl install pdo_sqlsrv \
  && echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini \
  && echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini \
  && a2dismod mpm_event \
  && a2enmod mpm_prefork \
  && a2enmod php7.0 \
  && echo "extension=pdo_sqlsrv.so" >> /etc/php/7.0/apache2/conf.d/30-pdo_sqlsrv.ini \
  && echo "extension=sqlsrv.so" >> /etc/php/7.0/apache2/conf.d/20-sqlsrv.ini \
  && wget https://github.com/vrana/adminer/releases/download/v4.6.3/adminer-4.6.3.php -O /var/www/html/index.php \
  && chown www-data:www-data /var/www/html/index.php \
  && . /etc/apache2/envvars \
  && mkdir -p ${APACHE_RUN_DIR} \
  && mkdir -p ${APACHE_RUN_USER} \
  && mkdir -p ${APACHE_LOCK_DIR} \
  && mkdir -p ${APACHE_LOG_DIR} \
  && mv /var/www/html/index.html /var/www/html/index.html.bak \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*

EXPOSE 80

CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]

2.以下のdocker-compose.ymlを使用して、AdminerとMySQLのコンテナーを構築する事ができます。
docker-compose up -d

docker-compose.yml
version: "2"
services:
  adminer:
    image: adminermssql
    container_name: "adminer"
    ports:
      - "8080:80"
    depends_on:
      - mssqldb
  mssqldb:
    image: microsoft/mssql-server-linux:2017-latest
    container_name: "mssql-db1"
    volumes:
      - "mssql-data:/var/opt/mssql/data"
      - "mssql-log:/var/opt/mssql/log"
      - "mssql-backup:/var/opt/mssql/backup"
    ports:
      - "1433:1433"
    environment:
      ACCEPT_EULA: Y
      MSSQL_PID: Developer
      SA_PASSWORD: mssql2017DEV!
volumes:
  mssql-data:
    driver: local
  mssql-log:
    driver: local
  mssql-backup:
    driver: local

○関連情報
・Adminerに関する他の記事はこちらを参照してください。


〇関連情報
・Adminerに関する他の情報はこちらを参照してください。

・Adminerのプロジェクトwebサイト
https://www.adminer.org/

0 件のコメント:

コメントを投稿