Я пытаюсь настроить конвейер gitlab CI / CD. Одна из вещей, которую конвейер должен сделать, это запустить модульные и интеграционные тесты. Поэтому мне нужно настроить Мариадб. Я создал файл docker и создал образ, в котором должна быть установлена переменная окружения, чтобы пользователь mysql создавался с именем chris и имел пароль с именем chris. Затем я показываю sh изображение docker до Амазонки ECR. В моем файле gitlab-ci.yml используется изображение, которое я подтолкнул к Amazon ECR. У меня проблема в том, что пользователь chris не получает доступ, НО пользователь root работает нормально. Что мне нужно добавить в мой docker файл, чтобы я мог использовать пользователя chris, а не root?
dockerfile
FROM mariadb:latest
ENV MYSQL_ROOT_PASSWORD "chris"
ENV MYSQL_DATABASE "testingdb"
ENV MYSQL_USER "chris"
ENV MYSQL_PASSWORD "chris"
RUN apt-get update && apt-get -y install vim
EXPOSE 3306
CMD ["mysqld"]
gitlab-ci.yml
image: XXXXXX.XXXXX.amazonaws.com/chris_mariadb:latest
services:
- mariadb
variables:
# Configure mysql environment variables (https://hub.docker.com/_/mysql/)
MYSQL_DATABASE: "testingdb"
MYSQL_ROOT_PASSWORD: "chris"
Host: mysql
User: chris
Password: chris
stages:
- build
build:
stage: build
script:
- ls
- mysql --user=chris --password=chris --host=localhost --port=3306 --database=testingdb --protocol=TCP --batch --local-infile < ./data/schema.sql
Ошибка
$ mysql --user=chris --password=chris --host=localhost --port=3306 --database=testingdb --protocol=TCP --batch --local-infile < ./data/schema.sql
ERROR 1045 (28000): Access denied for user 'chris'@'127.0.0.1' (using password: YES)
Любая помощь будет отличной. Я знаю, что мне, вероятно, не нужны переменные в моем gitlab-ci.yml, потому что я не использую бегуна mysql, но я отчаялся и стараюсь изо всех сил, чтобы это сработало. Я попытался запустить образ как контейнер, вошел и предоставил все привилегии для chris с подстановочными знаками и chris@127.0.0.1, и pu sh эти изменения вплоть до ECR, но это ничего не изменило. Кроме того, это работает правильно, когда user = root и password = chris. Я также получаю сообщения об ошибках, когда не использую TCP и пытаюсь использовать носок, поэтому я не хочу снова go идти по этому маршруту, если это не рекомендуется супер.