Не знаю как подключить расширение 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?


Ответы (0 шт):