Я получаю исключение «не удалось найти драйвер» при сборке моего приложения laravel в gitlab CI

#php #mysql #laravel #docker #gitlab-ci

#php #mysql #laravel #docker #gitlab-ci

Вопрос:

При сборке моего приложения laravel с использованием gitlab CI / CD я получаю следующее исключение:

Исключение Illuminate Database QueryException: не удалось найти драйвер (SQL: выберите * из information_schema.tables, где table_schema = xxx и table_name = xxx)

Вот мой файл .gitlab-yaml:

 image: php:7.2   
services:
  - name: mysql:5.7
variables:
  WITH_XDEBUG: "1"
  DB_HOST: mysql
  DB_USERNAME: root
  MYSQL_USER: root
  MYSQL_ROOT_PASSWORD: xxx
  MYSQL_DATABASE: xxx
stages:
      - build
      - test
building:
  stage: build
  image: php:7.2
  script:
  - cp .env.test .env
  - php artisan config:clear
  - php artisan migrate:refresh
  - php artisan db:seed
  artifacts:
    expire_in: 1 month
    paths:
      - vendor/
      - .env
phpunit:
  stage: test
  image: php:7.2
  script:
    - ./vendor/bin/phpunit --colors --verbose --configuration phpunit.xml
  

Пожалуйста, найдите мой файл .env.test ниже:

 APP_ENV=local
APP_DEBUG=true
APP_KEY=somestring

DB_CONNECTION=mysql
DB_HOST=mysql
DB_DATABASE=xxx
DB_USERNAME=xxx
DB_PASSWORD=xxx

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=xxx
  

Что я делаю не так? Я не могу решить это.

Ответ №1:

Mysql драйвер отсутствует на вашем сервере, я получил ту же ошибку, я решил ее с помощью следующей команды:

 sudo apt install php7.2-mysql
  

Вы можете заменить версию php в соответствии с версией php вашего сервера, также после выполнения приведенной выше команды вы можете выполнить следующую команду:

 php artisan cache:clear
php artisan config:clear  
  

Приведенная выше команда очищает кэш вашего сервера и перезапускает ваш сервер.