docker运行后的命令不';不能在bash脚本中执行

docker运行后的命令不';不能在bash脚本中执行,bash,docker,Bash,Docker,我有一个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_O

我有一个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.shtwo

它启动容器并在终端中打印spring框架的开始和其他信息。问题是docker运行后的下两行(执行jmeter测试并将结果输入csv)没有执行


我做错了什么?

这是因为您的容器仍在前台运行,因此您需要在
docker run
之后添加
-d
标志,以便它将分离控制台并在后台运行。

这是因为您的容器仍在前台运行,因此,您需要在
docker run
之后添加
-d
标志,这样它将分离控制台并在后台运行。

@sulekha_28使用
-d
选项
docker run--rm--name factorialorialContainer-p 8080:8080-d-e JAVA_选项在后台运行docker=”$(cat/Users/sulekahelmini/Documents/fyp/fyp\u work/MLscripts/flags.txt)“suleka96/factorial:latest
@sulekha\u 28使用
-d
选项
docker run--rm--name factorialcontainer-p8080:8080-d-e JAVA\u OPTIONS=“$(cat/Users/sulekahelmini/Documents/fyp/fyp\u work/MLscripts/flags.txt)”在后台运行dockersuleka96/factorial:最新版本