php - 在lumen 5.6应用中找不到驱动程序错误(在docker + alpine linux + nginx + php-fpm 7.2中运行)

标签 php docker migration lumen

我试图将数据库访问权限添加到我的Lumen 5.6应用程序中,该应用程序当前在以下LEMP Stack中的docker中运行:

  • Alpine Linux
  • PHP-FPM 7.2.x
  • NGINX

  • 我的撰写文件如下所示:
    version: '2.1'
    
    services:
    
      webhooks-mysql:
        container_name: webhooks-mysql
        image: mysql:5.7
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: 123456
          MYSQL_DATABASE: webhooks
          MYSQL_USER: webhooks
          MYSQL_PASSWORD: 123456
        healthcheck:
          test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
          timeout: 20s
          retries: 10
        ports:
        - "33401:3306"
    
      webhooks-service:
        container_name: webhooks-service
        depends_on:
          webhooks-mysql:
            condition: service_healthy
        build: .
        mem_limit: 64M
        ports:
          - "9050:80"
        volumes:
          - ./:/app:cached
    

    并且我的.env中包含以下内容:
    APP_NAME=webhooks
    APP_ENV=local
    APP_DEBUG=true
    APP_KEY=base64:123456=
    APP_TIMEZONE=UTC
    
    DB_CONNECTION=mysql
    DB_HOST=webhooks-mysql
    DB_DATABASE=webhooks
    DB_USERNAME=webhooks
    DB_PASSWORD=123456
    

    最后;我的容器具有所有require依赖项:
    php7 php7-fpm php7-mysqli php7-pdo php7-openssl php7-mbstring
    php7-xml php7-tokenizer php7-json php7-openssl php7-curl php7-zlib 
    php7-xml php7-phar php7-intl php7-dom php7-xmlreader php7-ctype 
    php7-mbstring php7-gd php7-zip git nginx supervisor curl zip unzip
    

    以及以下 Composer 软件包:
      "require": {
        "php": ">=7.1.3",
        "laravel/lumen-framework": "5.6.*",
        "vlucas/phpdotenv": "~2.2",
        "wikimedia/ip-set": "^1.2",
        "doctrine/dbal": "^2.8"
      }
    

    当我尝试在容器中运行迁移时,出现以下错误:

    /app # php artisan migrate

    In Connection.php line 664: could not find driver (SQL: select * from information_schema.tables where table_schema = webhooks and table_name = )

    In PDOConnection.php line 50: could not find driver



    任何想法为什么我会收到此错误?

    我已经验证了php-mysql / pdo扩展已加载,env值正确,等等...我似乎无法弄清楚。

    最佳答案

    由于docker镜像已被完全剥离,因此您可能会遇到更多依赖关系,我遇到了相同的问题并通过添加扩展名pdo_mysql以及现有扩展名(pdomysqlimbstring)进行了修复。

    关于php - 在lumen 5.6应用中找不到驱动程序错误(在docker + alpine linux + nginx + php-fpm 7.2中运行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53526168/

    相关文章:

    python - 使用 namedtuples 迁移正在运行的代码

    ruby-on-rails - 从SQLite迁移后,为什么我的应用程序不能修改开发postgresql数据库?

    php - 获取 UL 标签的内容以发布到数据库

    php - 如何在数据库中进行系统搜索

    ruby-on-rails - Docker 中的端口转发 Rails 应用程序似乎导致 CSRF 异常

    laravel - docker 无法为 laravel 加载样式表

    PHP - MySQLi 准备好的语句

    php - MySQL - 通过查询返回关联数组

    jenkins - 在 docker (dind) 中共享 docker.sock 或 docker

    python - Django Makemigrations 和 Migrate 很慢