繁体   English   中英

docker run 后的命令不会在 bash 脚本中执行

[英]Commands after docker run doesn't execute in bash script

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

当我使用以下命令运行此脚本时:

须藤 ./microwise.sh 两个

它启动容器并在终端打印spring框架的启动等信息。 问题是 docker run 后的下两行(执行 jmeter 测试并将结果导入 csv)没有被执行。

我究竟做错了什么?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM