Я думаю, что есть пара проблем с командой 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"'