Я хочу запустить "docker exec -it bash -c './tmp/script.sh'" с помощью gradle из build.gradle.Но эта команда не работает, хотя команда "docker ps -a" работает нормально
Я пытался по-другому, но не повезло
1) "docker-compose exec resin_container bash -c './resin/bin/resin-shutdown.sh'".execute().waitFor()
2) CommandLine "docker-compose exec resin_container bash -c './resin/bin/resin-shutdown.sh'"
3) exec{
executable = 'sh'
args "docker-compose exec resin_container bash -c './resin/bin/resin-shutdown.sh'"
}
Полный код на build.gradle приведен ниже
task dockerDeploy(dependsOn: 'tarArtifact') {
group = "dev"
description = 'Create exploded-war, tar it and deploy to docker'
doLast {
if (devEnvironment) {
if ("docker inspect -f '{{.State.Running}}' resin_container".execute().text.contains('true')) {
println "SHUTTING DOWN Resin Service"
"docker-compose ps".execute().waitFor()
//"docker-compose exec resin_container bash -c './resin/bin/resin-shutdown.sh'".execute().waitFor()
def resin_shutdown = "docker exec -it resin_container bash -c \"./resin/bin/resin-shutdown.sh\""
println "${resin_shutdown}"
exec{
//commandLine = 'docker ps'
commandLine = resin_shutdown
}
println "RESTARTING resin_container"
"docker-compose restart resin_container".execute().waitFor()
} else {
println "STARTING services"
"docker-compose up -d".execute()
}
}
}
}
Ожидаемый результат, как показано ниже.Здесь я запускаю команду из терминала оболочки, но я хочу запустить ту же команду, используя сборку gradle
uzzal$ docker exec -it resin_container bash -c "./resin/bin/resin-
shutdown.sh"
+ GREEN='\033[1;32m'
+ NC='\033[0m'
+ echo 'NODE_NAME : '
NODE_NAME :
+ pushd .
+ echo 'Waiting for server to stop'
Waiting for server to stop
+ sleep 3
+ pgrep -fl -U 999 resin.jar
+ awk '{ print $1 }'
+ xargs kill -SIGTERM
+ sleep 3
+ echo -e '\033[1;32m DONE SHUTTING DOWN \033[0m '
DONE SHUTTING DOWN
+ popd
uzzal$
Но вывод получается как
FAILURE: Build failed with an exception.
Чтопроизошла ошибка: не удалось выполнить задачу ': app: shutResin'.
Произошла проблема при запуске процесса 'команда' docker exec -it смолы_container bash -c "./resin/bin/resin-shutdown.sh "''
Попробуйте: Запустите с параметром --stacktrace, чтобы получить трассировку стека.Запустите с параметром --info или --debug, чтобы получить дополнительные выходные данные журнала.