Docker + mysql + php + Symfony,连接到mysql时出错

时间:2018-03-27 09:59:29

标签: mysql symfony docker

我正在尝试使用php app(Symfony 3)设置我的docker。

一切似乎都很好但是,Symfony无法连接到mysql。

我有错误:

  

未捕获的PHP异常Doctrine \ DBAL \ Exception \ DriverException:“驱动程序中发生异常:找不到驱动程序”

我的docker-compose.yaml文件是:

version: '3'
    services:
      app:
        image: car-rental
        ports: 
          - "8888:80"
        links:
          - php
          - db 
        volumes:
          - ./.code:/var/www/html
        depends_on:
          - db
      php:
        image: php:7.1-fpm
        volumes:
          - ./.code:/var/www/html  
      db:
        image: mysql:5.7
        volumes:
          - mysql-data:/var/lib/mysql
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: test
          MYSQL_DATABASE: rental

    volumes:
      mysql-data:

2 个答案:

答案 0 :(得分:2)

关于php的docker hub你可以看到 默认情况下,它仅包含redis redis xdebug已启用。

  

PHP源代码不提供某些扩展,而是提供   通过PECL获得。要安装PECL扩展,请使用pecl install   下载并编译它,然后使用docker-php-ext-enable启用   它

https://hub.docker.com/_/php/

您可以使用相同的docker compose文件,只需在容器启动时运行命令

  php:

image: php:7.1-fpm
command:docker-php-ext-install mysqli
volumes:
  - ./.code:/var/www/html  

您可以检查安装

php -m

这些是您提取的最新泊坞窗图像中的默认模块。

    Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

答案 1 :(得分:0)

此错误(could not find driver)表示您的PHP没有加载pdo_mysql模块。 如果尚未安装,则需要先启用它或先安装。