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