Я хочу использовать rsub пакет для Сублимированного текста для редактирования кода в контейнере Докера, который работает на удаленном сервере. Однако, когда я выполняюсь
rsub my_code.py
Я получаю ошибку:
/usr/local/bin/rsub: connect: Cannot assign requested address
/usr/local/bin/rsub: line 392: /dev/tcp/localhost/52698: Cannot assign requested address
Строка 392 в основном соответствует этой инструкции:
exec 3<> "/dev/tcp/localhost/52698"
bash: connect: Cannot assign requested address
bash: /dev/tcp/localhost/52698: Cannot assign requested address
Если я выхожу из контейнера Докера и выполняю ту же инструкцию относительно удаленного сервера, это работает приятно (или по крайней мере это не дает мне сообщений об ошибках). Можно ли помочь мне решить эту проблему? Я могу изменить Dockerfile в случае необходимости. Я могу также отправить его здесь, если Вы думаете, что это необходимо, но я должен доктор это немного прежде для удаления уязвимой информации.
Править: Я включаю часть rsub
сценарий, который повышает ошибку. Обратите внимание на это в этой точке в сценарии, $host=localhost
и $port=52698
. Я проверил это дважды с echo
операторы.
# connect to textmate and send command
#
exec 3<> "/dev/tcp/$host/$port"
if [ $? -gt 0 ]; then
echo "Unable to connect to TextMate on $host:$port"
exit 1
fi
read -r server_info 0<&3
log $server_info
for i in "${!filepaths[@]}"; do
open_file "$i"
done
echo "." 1>&3
if [[ $nowait = true ]]; then
exec </dev/null >/dev/null 2>/dev/null
( (handle_connection &) &)
else
handle_connection
fi
Править: Меня спросили о хосте ОС. Это - результат uname -a
когда на удаленном хосте, и вне контейнера Докера (удаленное имя сервера):
Linux xxxxxxx 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
и это - результат той же команды, когда выполнено в контейнере Докера:
Linux yyyyyyyyy 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
xxxxxxx
и yyyyyyy
различные строки. Кроме того, когда в контейнере Докера, я не могу найти каталог tcp
в dev
каталог:
root@7f199087c883:~# ls /dev/tcp
ls: cannot access '/dev/tcp': No such file or directory
В конце, с тех пор rsub
работал над удаленным хостом, простое решение было к:
rsub
отредактировать любые файлы на удаленном хосте, на сессии Сублимата на моем локальном ПКЭто немного медленно, потому что каждый раз я вношу изменения, которые я должен восстановить, но: