Я получаю исключение драйвера при попытке использовать pdo из моего док-контейнера.Мой образ устанавливает php7.1 вместе с включением расширения pdo_mysql.Учетные данные базы данных также верны, но я не уверен, почему я все еще являюсь этим исключением драйвера: PHP Fatal error: Uncaught PDOException: could not find driver in /var/www/app/test.php:9
Нужно ли мне включать какие-либо другие расширения?
Dockerfile
FROM ubuntu:xenial
# install dependencies
RUN apt-get update
RUN apt-get install -y software-properties-common python-software-properties
RUN apt-get install -y language-pack-en-base
RUN LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
# setup php
RUN apt-get update && \
apt-get install -y nginx \
php7.1 \
php7.1-fpm \
php7.1-cli \
php7.1-common \
php7.1-json \
php7.1-opcache \
php7.1-mysql \
php7.1-mbstring \
php7.1-gd \
php7.1-imap \
php7.1-ldap \
php7.1-dev \
php7.1-intl \
php7.1-gd \
php7.1-curl \
php7.1-zip \
php7.1-xml \
curl
RUN phpenmod pdo_mysql
EXPOSE 8000
ENTRYPOINT ["/bin/sh", "./entrypoint.sh"]
docker-compose.yml
version: "3"
services:
app:
image: app:latest
command: start
ports:
- 8000:8000
links:
- db
environment:
DB_DATABASE: mydb
DB_HOST: db
DB_USER: app_user
DB_PASSWORD: abc123
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: app_user
MYSQL_PASSWORD: abc123
MYSQL_ROOT_PASSWORD: abc123
ports:
- 3306:3306
test.php
<?php
require_once('vendor/autoload.php');
use PDO;
$dns = ":host=".getenv('DB_HOST')."; dbname=".getenv('DB_DATABASE');
echo new PDO($dns, getenv('DB_USER'), getenv('DB_PASSWORD'));