¿Cómo habilitar las extensiones mysql de php en el contenedor docker? [duplicate]

1 minuto de lectura

tengo el siguiente docker-compose.yml

web:
  image: nginx:1.17.1-alpine
  ports:
    - "80:80"
  volumes:
    - ./code:/code
    - ./site.conf:/etc/nginx/conf.d/site.conf
  links:
    - php

php:
  build: .
  volumes:
    - ./code:/code
  links:
    - mysql

mysql:
  image: yobasystems/alpine-mariadb:latest
  ports:
    - "3306:3306"
  volumes:
    - ./mysql:/var/lib/mysql
environment: 
    - MYSQL_ROOT_PASSWORD=password

y siguiente dockerfile

FROM php:7.1.0-fpm-alpine

RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

En esta configuración, las extensiones mysql de php o las extensiones mysql de docker nunca se instalan. No puedo acceder a mysql desde el contenedor php. adminer.php se queja diciendo que “Ninguna de las extensiones de PHP admitidas (MySQLi, MySQL, PDO_MySQL) está disponible”.

¿Cómo solucionamos este problema?

Avatar de usuario de Danushka Gunawardena
danushka gunawardena

Agregar lo siguiente a dockerfile solucionó el problema.

RUN docker-php-ext-install mysqli pdo pdo_mysql && docker-php-ext-enable pdo_mysql

  • en la publicación original, es un poco diferente, faltan partes de pdo.

    – Danushka Gunawardena

    24 de julio de 2019 a las 12:58

  • ¡Gracias por esto! Pienso que el mysqli bit no es realmente necesario. Es una extensión aparte de PDO.

    – gyohza

    8 de febrero de 2021 a las 2:02

¿Ha sido útil esta solución?