Выполнить bash-скрипт из докера - PullRequest
0 голосов
/ 02 июля 2019

У меня есть скрипт bash, который выполняется внутри контейнера докера.Этот bash-скрипт вызывается моим скриптом-оберткой на python.Аргументы передаются через скрипт Python.В скрипте Bash есть строка для выполнения команды ssh и получения результата.Когда я запускаю это, я не получаю вывод ssh в терминале своего хоста, откуда я запускаю скрипт.
Это мой раздел скрипта bash

function query_function () {
    test_variable1=`curl -ks "$sp_hostname" | grep ",active" | egrep -v "$excluded_hostnames" | egrep "[.,]$1" | egrep ",$2| $2" | cut -d "," -f 2 | sort`
    for f in `echo $test_variable1`; do
        output=''
        echo 'SERVER:' $f
        ssh -i "key_file" -o "StrictHostKeyChecking no" -q $f "$3"
        echo $'\n'
    done
    exit 0
} 

Вот как я вызываю свой докер-контейнер для запуска скрипта.

$ docker run -it --rm --net host nnarayanan-wrapper morpheus vm appdb 'command'

1) Подтвержденный скрипт python вызывает скрипт bash2) Подтвердил, что bash-скрипт принимает переданные аргументы3) Я не получаю никакого вывода при выполнении ssh внутри контейнера докера через скрипт bash в терминале моей машины

1 Ответ

0 голосов
/ 02 июля 2019

Скорее всего на вашем изображении у вас нет curl и egrep.

Поэтому я предлагаю вам добавить в свой Dockerfile это:

...
# Install prerequisites
RUN apt-get update && apt-get install -y curl egrep
...

Надеюсь, это поможет.

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