Как исправить ошибку ECONNRESET ioredis в Adonisjs во время развертывания

Когда я пытался развернуть AdonisJS в цифровом океане или в Azure, я получаю эту ошибку

[ioredis] Unhandled error event: Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:209:20)

Мое приложение Adonis требует для работы Redis. Я использую экземпляр Redis от Digital Ocean. Вот моя производственная конфигурация для Redis.

  prod: {
    host: Env.get("REDIS_HOST"),
    port: Env.get("REDIS_PORT"),
    password: Env.get("REDIS_PASSWORD"),
    db: 0,
    keyPrefix: ""
  },

person Osinachi    schedule 09.01.2021    source источник
comment
Я тоже это вижу с локальным экземпляром докера. Кажется, этого не происходит, когда Redis запускается без опции --requirepass. Вы знаете параметры запуска redis-сервера или настройки redis.conf? Было бы любопытно сравнить заметки.   -  person hoekma    schedule 24.01.2021


Ответы (2)


Если вы подключаете свое приложение AdonisJS к экземпляру Redis, защищенному TLS, вам необходимо добавить хост tls в ваш config.

Итак, ваша конфигурация продукта должна выглядеть так

  prod: {
    host: Env.get("REDIS_HOST"),
    port: Env.get("REDIS_PORT"),
    password: Env.get("REDIS_PASSWORD"),
    db: 0,
    keyPrefix: "",
    tls: {
      host: Env.get("REDIS_HOST"),
    },
  },
person Osinachi    schedule 09.01.2021

Как продолжение моего комментария - моя среда докеров деградировала до такой степени, что я даже не мог подключиться через redis-cli к ванильному образу докерхаба Redis. Я закончил очистку своей среды докеров, удалив все контейнеры, изображения, тома, сети и т. Д., А затем перезагрузив свой Mac. После их восстановления эта проблема исчезла для меня.

Я ненавижу незнание первопричины, но у меня есть теория. Я играл с несколькими разными образами Redis, включая автономный образ vanilla из dockerhub и образ кластера из https://github.com/Grokzen/docker-redis-cluster. Я настраивал сборку последнего, чтобы добавить аутентификацию. Теория состоит в том, что из-за многократных сборок и разборок за порт происходили остаточные процессы. Я мог проявить нетерпение и жестко останавливал контейнеры, над которыми работал несколько раз при отладке файлов dockerfile и docker-entrypoint.sh. :)

Я знаю, что этот ответ не имеет прямого отношения к хостингу на DO или Azure, но, поскольку симптом тот же, возможно, где-то есть сетевой конфликт.

person hoekma    schedule 24.01.2021