Команды после docker run не выполняются в скрипте bash - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть сценарий bash следующим образом:

#!/bin/bash

  if [ $1 = "first" ]
    then
      cd /Users/sulekahelmini/Documents/fyp/fyp_work/demo/target && docker build . -t suleka96/factorial
  fi
  docker run --rm --name factorialorialContainer -p 8080:8080 -e JAVA_OPTIONS="$(cat /Users/sulekahelmini/Documents/fyp/fyp_work/MLscripts/flags.txt)" suleka96/factorial:latest
  sleep 3
  #run test
  cd /Users/sulekahelmini/Documents/fyp/apache-jmeter-5.2.1/bin && sh jmeter -n -t /Users/sulekahelmini/Documents/fyp/jmeter_scripts/factorial.jmx -l /Users/sulekahelmini/Documents/fyp/fyp_work/MLscripts/jmeter_results.jtl
  #convert result to csv
  cd /Users/sulekahelmini/Documents/fyp/apache-jmeter-5.2.1/bin && ./JMeterPluginsCMD.sh --generate-csv /Users/sulekahelmini/Documents/fyp/fyp_work/MLscripts/agg_test.csv --input-jtl /Users/sulekahelmini/Documents/fyp/fyp_work/MLscripts/jmeter_results.jtl --plugin-type AggregateReport
  docker stop factorialorialContainer

, когда я запускаю этот сценарий, используя:

sudo ./microwise.sh two

Запускает контейнер и печатает запуск пружинного каркаса и другую информацию в терминале. Проблема в том, что следующие две строки (выполнение jmeter test и получение результатов в csv) после docker run не выполняются.

Что я делаю не так?

1 Ответ

2 голосов
/ 12 февраля 2020

это потому, что ваш контейнер все еще работает на переднем плане, поэтому вам нужно добавить флаг -d после docker run, чтобы он отсоединил консоль и запустил ее в фоновом режиме.

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