Не знаю как подключить расширение php-mysqli в докере
Я хочу сконфигурировать себе лабораторию для изучения уязвимостей баз данных. По статье с античата решил сделать сборку php+apache+mysql. Запускаю все это в докере. Вот так написаны конфиги докера:
docker-compose.yml:
version: '3'
services:
php:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./src:/var/www/html
ports:
- 8080:80
depends_on:
- mysql
mysql:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: lab
MYSQL_USER: aoizora
MYSQL_PASSWORD: 123
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
Dockerfile:
FROM php:7.4-apache
COPY src/ /var/www/html/
В папке src рядом с конфигами я разместил php-скрипт:
<?php
$link = mysqli_connect("localhost", "aoizora", "123")
or die("Could not connect: " . mysqli_error());
print ("Connected successfully");
mysqli_close($link);
?>
Но при обращении к этому скрипту по адресу http://localhost:8080/db.php я получаю ошибку:
Fatal error: Uncaught Error: Call to undefined function mysqli_connect()
Оказалось, что надо установить расширение php-mysqli, но я не знаю, как это сделать. Я добавил такие строки в Dockerfile:
FROM php:7.4-apache
COPY src/ /var/www/html/
RUN apt-get update && apt-get install -y mysql-client
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN docker-php-ext-enable mysqli
Но это не помогло. Как правильно в моих конфигах подключить нужное расширение php?