mysqldump в Jenkinsfile не может подключиться к серверу - PullRequest
0 голосов
/ 27 августа 2018

Это этап в Jenkinsfile, откуда возникает проблема:

stage ('Build & Run container') {
    imageMysql     = docker.build('backend-server-mysql-dev', '--no-cache -f build/docker/mysql/Dockerfile .')
    containerMysql = imageMysql.run("--name backend-server-mysql-dev -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e  MYSQL_ROOT_USER=root -e MYSQL_PASSWORD=mahmoud -e MYSQL_DATABASE=soextremedb")
    sh 'docker ps | docker exec -it backend-server-mysql-dev /bin/bash | ls -l | mysqldump -u root -proot soextremedb < soextremedb.sql'
}

Это сообщение об ошибке:

Shell Script -- docker ps | docker exec -it backend-server-mysql-dev /bin/bash | ls -l | mysqldump -u root -proot soextremedb < soextremedb.sql -- (self time 566ms)
[soextremeBackEnd_Dev-MBC6SQWYSNVE6ADN2QOAOGZ4YYVT5E6K7Y2FUP6ROOROWRMCPFOA] Running shell script
+ docker ps
+ docker exec -it backend-server-mysql-dev /bin/bash
+ ls -l
+ mysqldump -u root -proot soextremedb
**mysqldump: Got error: 2002: "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")" when trying to connect the input device is not a TTY**

1 Ответ

0 голосов
/ 27 августа 2018

Я думаю, что есть пара проблем с командой sh.

Во-первых, | используется для отправки вывода одной команды следующей команде, но похоже, что вы просто пытаетесь выполнить последовательность команд. Для этого вы можете использовать ; или &&. Вы можете взглянуть на этот ответ , чтобы получить сводную информацию об операторах оболочки.

Затем, для вашей команды docker exec, я думаю, что вы на самом деле хотите вызвать серию команд неинтерактивно: пропустите -it и используйте /bin/bash -c для передачи строки команды в оболочку.

Это даст вам что-то вроде:

sh 'docker ps ; docker exec backend-server-mysql-dev /bin/bash -c "ls -l ; mysqldump -u root -proot soextremedb < soextremedb.sql"'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...