如何在Docker容器中启用PHP的MySQL扩展?

32

我有以下的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

以及以下的Dockerfile

FROM php:7.1.0-fpm-alpine

RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
在这种情况下,php的mysql扩展或docker mysql扩展从未被安装。我无法从php容器访问mysql。adminer.php 抱怨说"没有可用的受支持PHP扩展(MySQLi、MySQL、PDO_MySQL)"。
我们该如何解决这个问题?
1个回答

60

将以下内容添加到dockerfile中解决了该问题。

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

在原始帖子中,它有些不同,其中缺少了PDO部分。 - Danushka Gunawardena
1
谢谢您!我认为mysqli部分并不是必需的。它是PDO之外的扩展。 - gyohza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接