Eu quero usar o pacote rsub para o texto sublime, a fim de editar o código dentro de um contêiner Docker que é executado em um controle remoto servidor. No entanto, quando eu executo
rsub my_code.py
Eu recebo o erro:
/usr/local/bin/rsub: connect: Cannot assign requested address
/usr/local/bin/rsub: line 392: /dev/tcp/localhost/52698: Cannot assign requested address
A linha 392 basicamente corresponde a esta instrução:
exec 3<> "/dev/tcp/localhost/52698"
bash: connect: Cannot assign requested address
bash: /dev/tcp/localhost/52698: Cannot assign requested address
Se eu sair do contêiner do Docker e executar a mesma instrução no servidor remoto, ele funcionará bem (ou, pelo menos, não fornecerá mensagens de erro). Você pode me ajudar a resolver esse problema? Eu posso modificar o Dockerfile, se necessário. Eu também posso postar aqui se você acha que é necessário, mas eu deveria medicar um pouco antes de remover informações confidenciais.
EDITAR : incluo a parte do script rsub
que gera o erro. Observe que, neste ponto do script, $host=localhost
e $port=52698
. Eu verifiquei isso com echo
declarações.
# 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
EDIT : Fui questionado sobre o sistema operacional host. Este é o resultado de uname -a
quando no host remoto e fora do contêiner do Docker (nome do servidor removido):
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
e este é o resultado do mesmo comando quando executado dentro do contêiner do Docker:
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
e yyyyyyy
são strings diferentes. Além disso, quando dentro do contêiner do Docker, não consigo encontrar nenhum diretório tcp
dentro do diretório dev
:
root@7f199087c883:~# ls /dev/tcp
ls: cannot access '/dev/tcp': No such file or directory