Как запустить "docker exec -it"bash "используя Gradle Build? - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу запустить "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, чтобы получить дополнительные выходные данные журнала.

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