Отказ в соединении для mysql в gitlab-ci для Laravel 6 - PullRequest
0 голосов
/ 11 ноября 2019

Я создал тесты по отношению к базе данных. Я настраивал gitlab-ci.yml для Laravel. Когда файл запускается в GitLab, у меня возникает ошибка с базой данных подключения. (ошибка появляется при запуске миграции на этапе тестирования)

   Illuminate\Database\QueryException  : SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = gitlabDb and table_name = migrations and table_type = 'BASE TABLE')  at /builds/... /.../vendor/laravel/framework/src/Illuminate/Database/Connection.php:665
    661|         // If an exception occurs when attempting to run a query, we'll format the error
    662|         // message to include the bindings with SQL, which will make this exception a
    663|         // lot more helpful to the developer instead of just the database's errors.
    664|         catch (Exception $e) {
  > 665|             throw new QueryException(
    666|                 $query, $this->prepareBindings($bindings), $e
    667|             );
    668|         }
    669|

  Exception trace:

  1   PDOException::("SQLSTATE[HY000] [2002] Connection refused")
      /builds/.../.../vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70

  2   PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=gitlabDb", "user", "password", [])
      /builds/.../.../vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70

  3   Illuminate\Database\Connectors\Connector::createPdoConnection("mysql:host=127.0.0.1;port=3306;dbname=gitlabDb", "user", "password", [])

прочитайте документацию докера MySql , чтобы узнать, какие переменные мне нужно использовать.

здесь мойфайл gitlab-ci.yml

image: lorisleiva/laravel-docker:latest

services:
  - mysql:5.7

variables:
  MYSQL_ROOT_PASSWORD: password
  MYSQL_DATABASE: gitlabDb
  MYSQL_ROOT_HOST: mysql
  MYSQL_USER: user
  MYSQL_PASSWORD: password

  DB_DATABASE: gitlabDb
  DB_HOST: mysql
  DB_USERNAME: user
  DB_PASSWORD: password

composer:
  stage: build
  script:
    - composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts
    - cp .env.example .env
    - php artisan key:generate
  artifacts:
    expire_in: 30 days
    paths:
      - vendor/
      - .env
  cache:
    key: ${CI_COMMIT_REF_SLUG}-composer
    paths:
      - vendor/

phpunit:
  stage: test
  dependencies:
    - composer
  script:
    - php artisan migrate -v # <-- the error is triggered at that time
    - phpunit --coverage-text --colors=never
...

Я не понимаю, откуда моя ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...