Home > Net >  Bash script start docker container script & pass in arguments
Bash script start docker container script & pass in arguments

Time:08-05

I have a bash script that runs command line functions, and I then need the script to run commands in a docker container. I then need the script to pass in arguments into the docker, and eventually exit. However, I'm unable to have the script pass in arguments into the docker container. How can I do this?

This is what the docker commands look like without the bash script for reference.

$ docker exec -it rti_cmd
root@29c:/data# rti
187.0.0.1:9806> run_cmd
(integer) 0
187.0.0.1:9806> exit
root@29c:/data# exit
exit

Code snippet with two variations of attempts:

#!/bin/bash

docker exec -it rti_cmd bash<< eeee
rti
run_cmd
exit
exit
eeee

#also have done without the ";"
docker exec -it rti_cmd bash /bin/sh -c
"rti;
run_cmd;
exit;
exit"

Errors:

$ chmod  x test.sh
$ ./test.sh
the input device is not a TTY
/bin/sh: /bin/sh: cannot execute binary file
./test.sh: line 17: $'rti;\nrun_cmd;\nexit;\nexit': command not found

CodePudding user response:

You don't need -i interacive nor -t tty if you want to be non-interactive.

docker exec rti_cmd sh -c 'rti;run_cmd'
  • Related