Как мне интерфейс командной строки к серверу redis, работающему на том же сервере вычислительного механизма, что и мое приложение nodejs - PullRequest
0 голосов
/ 12 февраля 2019

Резюме: я не могу получить доступ к redis-cli из моего развернутого приложения nodejs, я подозреваю, что redis не упаковывается в док-контейнер, в котором выполняется мой код.

Есть ли способ выполнить целевую командную строкудля моего хост-сервера, а не выполнения в докере?Могу ли я получить доступ к redis-cli из контейнера Docker?

У меня есть приложение nodejs, которое я развернул в экземпляре Google Compute Engine.Экземпляр был создан с помощью bitnami debian nodejs, который включает в себя redis.

Я использую следующий модуль для выполнения redis cli const {exec} = require ('child_process');

Redis работает иЯ могу получить и установить ключи из моего кода, используя API nodejs.

Однако, чтобы выполнить массовую вставку ключей, мне нужно выполнить следующую команду из порожденного процесса ... cat filname.txt |redis-cli --pipe, где имя файла содержит мои ключи в правильном формате.

Все это работает, когда я запускаю прямо на сервере.Однако, когда я использую Google Cloud deploy, я теряю доступ к Redis-Cli.Конкретная ошибка, возвращаемая процессом: ... / bin / sh: 1: redis-cli: not found

Я подозреваю, что это связано с тем, что при развертывании мой код выполняется в контейнере Docker.Находясь в контейнере Docker, я все еще могу получить доступ к Redis через 127.0.0.1, но теряю возможность доступа к нему из командной строки.


Полная команда и сообщение об ошибке:

выполнение команды:
cat /tmp/test.txt |redis-cli --pipe

{ Error: Command failed: cat /tmp/test.txt | redis-cli --pipe
/bin/sh: 1: redis-cli: not found
  at ChildProcess.exithandler (child_process.js:294:12)
  at ChildProcess.emit (events.js:189:13)
  at maybeClose (internal/child_process.js:970:16)
  at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
killed: false,
code: 127,
signal: null,
cmd:
'cat /tmp/test.txt | redis-cli --pipe' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...