Выполнить S SH на работающем docker контейнере с пропуском - PullRequest
0 голосов
/ 04 апреля 2020

Helo! Я хочу восстановить резервную копию производственной базы данных в docker. Итак, я хочу скачать его внутри моего контейнера с внешнего сервера. Не получается, потому что пароль s sh ...

Это мой Dockerfile

FROM mysql:5.6
ENV MYSQL_ROOT_PASSWORD password
EXPOSE 3306 
COPY ./scripts /docker-entrypoint-initdb.d/
RUN apt-get update && apt-get install -y ssh 
COPY  ./ssh /home/mysql/.ssh

и мой скрипт для загрузки файла sql

completePath=$(ssh -T user@host.ip << EOF
cd /home/data/last/2020*
sourcePath=\$PWD
databaseURI=\`ls gran*\`
sourcePath=\$sourcePath/\$databaseURI
echo \$sourcePath
EOF
)
echo $completePath

scp user@host.ip:/$completePath $PWD
mv database.dmp database.sql

Сценарий отлично работает за пределами Docker. Это ошибка, когда я

docker run --name database -p 3306:3306  prod-database

В доступе отказано, повторите попытку. Получено отключение от порта host.ip 22: 2: слишком много ошибок аутентификации. Ошибка аутентификации.

Надеюсь, вы мне поможете! Tks!

1 Ответ

0 голосов
/ 04 апреля 2020

Это решение

sshpass -f <(printf '%s\n' password) ssh -T user@172.22.18.71
...