Docker SQLserver

DockerでSQLserverを実行するdocker-compose.ymlと、PHPで接続するDockerfile

環境:macOS,Debian


docker-compose.yml

version: "3"
services:
    mssql:
        image: mcr.microsoft.com/azure-sql-edge
        container_name: azuresqledge
        ports:
            - "1433:1433"
        environment:
            - ACCEPT_EULA=Y
            - MSSQL_SA_PASSWORD=password
            - MSSQL_PID=Developer
            - MSSQL_LCID=1041
            - MSSQL_COLLATION=Japanese_CI_AS
            - TZ=Asia/Tokyo
        volumes:
            - ./azuresqledge:/var/opt/mssql

    php:
        build: .
        container_name: php-apache
        volumes:
            - ./php.ini:/usr/local/etc/php/php.ini
            - ./html:/var/www/html
        ports:
            - 8080:80

Dockerfile

FROM php:8.1.16-apache
RUN apt-get update && apt-get install -y gnupg \
    && curl https://packages.microsoft.com/keys/microsoft.asc \
    | apt-key add - \
    && curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get update && ACCEPT_EULA=Y apt-get install -y \
    mssql-tools18 \
    unixodbc-dev \
    && echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc \
    && . ~/.bashrc \
    && pecl install \
    sqlsrv \
    pdo_sqlsrv \
    && printf "; priority=20\nextension=sqlsrv.so\n" > /usr/local/etc/php/conf.d/sqlsrv.ini \
    && printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /usr/local/etc/php/conf.d/pdo_sqlsrv.ini

コメントする