Запуск mysql в контейнере Docker, предоставляющий привилегии всем хостам для пользователя, и все еще не удается подключиться в конвейере Jenkins. - PullRequest
0 голосов
/ 13 ноября 2018

Я запускаю локально запущенный экземпляр docker, создаю пользователя и пытаюсь запускать команды с помощью локального клиента mysql после предоставления привилегий, и он говорит, что не может подключиться с узла jenkins к контейнеру docker.Я использую подстановочный знак для предоставления пользователю прав на всех хостах и ​​всех разрешениях.

Я запускал этот сценарий локально, и он работал и не вызывал проблем, в настоящее время при запуске в Jenkins мне не дают разрешения на команды:

 mysql --user="user" --password="password" -D global -h 127.0.0.1 -P 3306 -e "show databases;"
 mysql --user="user" --password="password" -h 127.0.0.1 -P 3306 -e "show databases;"
 mysql --user="root" --password="password" -D global -h 127.0.0.1 -P 3306 -e "show databases;"
 mysql --user="root" --password="password" -h 127.0.0.1 -P 3306 -e "show databases;"
 docker logs mysql
 echo "good"

выходные данные jenkins

21:33:53 [-clinical-codes_add-jenkins-QLNQBBZFU3HAJI4FX6MOTIRSLH5SPBXG5JYMD5OJHQX6KS2JPKCA] Running shell script
21:33:53 Remove Docker Contianer
21:33:54 1fc9f9846888
21:33:54 Check Docker containers
21:33:54 CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                           PORTS               NAMES
21:33:54 9a002c63aa48        anchore/jenkins:latest   "/bin/sh -c /root/up…"   6 weeks ago         Exited (255) About an hour ago                       jenkins_anchore
21:33:54 5.7: Pulling from mysql/mysql-server
21:33:54 Digest: sha256:79d65bf4360056b0709b4a1c4996f7ef8265ae6ca67462a8570ac1fa0855758b
21:33:54 Status: Image is up to date for mysql/mysql-server:5.7
21:33:54 9a26401c25c61ab30cc744f551672e476a3fc95bea48e4f532afc596a601bd53
21:34:28 the input device is not a TTY
21:34:28 the input device is not a TTY
21:34:28 the input device is not a TTY
21:34:28 the input device is not a TTY
21:34:28 mysql: [Warning] Using a password on the command line interface can be insecure.
21:34:28 ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
21:34:28 mysql: [Warning] Using a password on the command line interface can be insecure.
21:34:28 ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
21:34:28 mysql: [Warning] Using a password on the command line interface can be insecure.
21:34:28 ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
21:34:28 mysql: [Warning] Using a password on the command line interface can be insecure.
21:34:28 ERROR 1130 (HY000): Host '172.17.0.1' is not allowed to connect to this MySQL server
21:34:28 [Entrypoint] MySQL Docker Image 5.7.24-1.1.8
21:34:28 [Entrypoint] Initializing database
21:34:28 [Entrypoint] Database initialized
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
21:34:28 Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
21:34:28 
21:34:28 [Entrypoint] ignoring /docker-entrypoint-initdb.d/*
21:34:28 
21:34:28 [Entrypoint] Server shut down
21:34:28 
21:34:28 [Entrypoint] MySQL init process done. Ready for start up.
21:34:28 
21:34:28 [Entrypoint] Starting MySQL 5.7.24-1.1.8
21:34:28 good

Я явно запутываю фактического пользователя и пароль, который я использую для стекового сообщения.

if [ -z $(docker ps -a  | grep mysql | cut -d " " -f 1) ]; then
    docker pull mysql/mysql-server:5.7
    docker run --name mysql -e MYSQL_DATABASE="global" -e MYSQL_ROOT_HOST="127.0.0.1" -e MYSQL_ROOT_PASSWORD="password" -p 3306:3306 -d mysql/mysql-server:5.7
    sleep 30
else
   echo "Remove Docker Contianer"
   docker rm -f $(docker ps -a  | grep mysql | cut -d " " -f 1)
   echo "Check Docker containers"
   docker ps -a      
   docker pull mysql/mysql-server:5.7
   docker run --name mysql -e MYSQL_DATABASE="global" -e MYSQL_ROOT_HOST="127.0.0.1" -e MYSQL_ROOT_PASSWORD="password" -p 3306:3306 -d mysql/mysql-server:5.7
   sleep 30
fi


docker exec -it mysql mysql --user root --password=password -D global -e "CREATE USER 'user'@'%' IDENTIFIED BY 'password';"
docker exec -it mysql mysql --user root --password=password -D global -e "GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';"
docker exec -it mysql mysql --user root --password=password -D global -e "UPDATE mysql.user SET Super_Priv='Y' WHERE user='user' AND host='%';"
docker exec -it mysql mysql --user root --password=password -D global -e "FLUSH PRIVILEGES;"


mysql --user="user" --password="password" -D global -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="user" --password="password" -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="root" --password="password" -D global -h 127.0.0.1 -P 3306 -e "show databases;"
mysql --user="root" --password="password" -h 127.0.0.1 -P 3306 -e "show databases;"
docker logs mysql

Что такоеЯ здесь скучаю?

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