Строка не преобразуется должным образом при настройке из команды ssh - PullRequest
0 голосов
/ 03 декабря 2018

Это мой файл действий, который запускает команду ssh для запуска ssh на мою рабочую станцию ​​с заданными параметрами и вызывает файл deployer.sh.

MOUNT_ECR_LOGIN="-v /usr/bin/docker-credential-ecr-login:/usr/bin/docker-credential-ecr-login"

ACTIONS="${WORKSTATION_EC2} MOUNT_ECR_LOGIN=$MOUNT_ECR_LOGIN ./deployer.sh"

, который при запуске преобразуется в следующую строку:

ssh -t -t -q ec2-user@networkba-bastion ssh -q -t ec2-user@workstation MOUNT_ECR_LOGIN=-v /usr/bin/docker-credential-ecr-login:/usr/bin/docker-credential-ecr-login ./deployer.sh

Ниже приведена ошибка:

bash: /usr/bin/docker-credential-ecr-login:/usr/bin/docker-credential-ecr-login: No such file or directory

Я устанавливаю переменную для файла deployer.sh, в котором выполняется команда запуска Docker.

к сожалению, MOUNT_ECR_LOGIN назначается только как -v, а не как полная строка с информацией о файле.Я должен сбежать из мест здесь?или нам нужно другое решение?

1 Ответ

0 голосов
/ 03 декабря 2018

updated

Проблема связана с разделением аргументов, так как два ssh аргументы должны быть указаны дважды

MOUNT_ECR_LOGIN=$'\'"-v /usr/bin/docker-credential-ecr-login:/usr/bin/docker-credential-ecr-login"\''

ACTIONS="${WORKSTATION_EC2} MOUNT_ECR_LOGIN=$MOUNT_ECR_LOGIN ./deployer.sh"

предыдущий ответ был

, быстрыйможно исправить использование массивов

ACTIONS=("${WORKSTATION_EC2}" "SOURCE_REGISTRY=$SOURCE_REGISTRY" "DEPLOYMENT_NAME=$DEPLOYMENT_NAME" "MOUNT_ECR_LOGIN=$MOUNT_ECR_LOGIN" ./deployer.sh)

, а затем использовать "${ACTIONS[@]}"

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