Как настроить соединение с базой данных MySql с помощью gitlab CI / CD - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь настроить автоматическое c тестирование проекта django с использованием CI / CD gitlab. Проблема в том, что я никак не могу подключиться к базе данных Mysql.

gitlab-ci.yml

services:
  - mysql:5.7

variables:
      MYSQL_DATABASE: "db_name"
      MYSQL_ROOT_PASSWORD: "dbpass"
      MYSQL_USER: "username"
      MYSQL_PASSWORD: "dbpass"


stages:
  - test

test:
  stage: test
  before_script:
  - apt update -qy && apt-get install -qqy --no-install-recommends default-mysql-client
  - mysql --user=$MYSQL_USER --password=$MYSQL_PASSWORD --database=$MYSQL_DATABASE --host=$MYSQL_HOST --execute="SHOW DATABASES; ALTER USER '$MYSQL_USER'@'%' IDENTIFIED WITH mysql_native_password BY '$MYSQL_PASSWORD'"
  script:
  - apt update -qy
  - apt install python3 python3-pip virtualenvwrapper -qy
  - virtualenv --python=python3 venv/
  - source venv/bin/activate
  - pwd
  - pip install -r requirement.txt
  - python manage.py test apps

При такой конфигурации файла Я получаю сообщение об ошибке

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Что я пытался сделать

добавить к mysql сценарий tcp соединение неустойчивый сокет

mysql --protocol=TCP --user=$MYSQL_USER --password=$MYSQL_PASSWORD --database=$MYSQL_DATABASE --host=$MYSQL_HOST --execute="SHOW DATABASES; ALTER USER '$MYSQL_USER'@'%' IDENTIFIED WITH mysql_native_password BY '$MYSQL_PASSWORD'"

И в этом случае я получил

ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (99)

Как правильно настроить?

1 Ответ

2 голосов
/ 10 марта 2020

Вам необходимо использовать имя сервиса в качестве имени хоста базы данных. В этом случае MYSQL_HOST должно быть mysql.

Пример можно посмотреть на странице Gitlab и прочитать , как сервисы связаны с заданием

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