# Ошибка при пересборке: registry.yarnpkg.com ESOCKETTIMEDOUT

**URL:** https://meta.discourse.org/t/error-during-rebuild-registry-yarnpkg-com-esockettimedout/319714
**Category:** Self-hosting
**Created:** [01.Август.2024 21:25:01 UTC](https://meta.discourse.org/t/error-during-rebuild-registry-yarnpkg-com-esockettimedout/319714 "2024-08-01T21:25:01Z")
**Posts on this page:** 1
**Showing post:** 5

<div class="post-metadata">

### Author: ![ygramoel](https://avatars.discourse-cdn.com/v4/letter/y/74df32/32.png) [@ygramoel](https://meta.discourse.org/u/ygramoel)
#### Post date: [02.Август.2024 18:25:50 UTC](https://meta.discourse.org/t/error-during-rebuild-registry-yarnpkg-com-esockettimedout/319714/5 "2024-08-02T18:25:50Z")

</div>

К сожалению, простое выполнение

```plaintext
./launcher start app

```

не возвращает форум к работе.

В любом случае, я провел дополнительные эксперименты. В частности, я попытался вручную выполнить команду yarn, которая не срабатывает, внутри образа Docker:

```plaintext
./launcher enter app
cd /var/www/discourse
su discourse
yarn install --frozen-lockfile
... завершается с тем же таймаутом ...
yarn config set network-timeout 600000 -g
yarn install --frozen-lockfile
... успешно ...

```

Это подтверждает, что увеличение таймаута решает проблему.

Теперь остается вопрос: как увеличить таймаут также при выполнении `./launcher rebuild app`.

Файл `web.template.yml` действительно находится в `discourse/containers` вне образа Docker. Изначально я его не нашел, потому что моя установка Discourse расположена в нестандартном месте, а не в `/var/discourse`.

Исправление, упомянутое в ссылке выше, относится к строке 159, но теперь это, вероятно, уже неактуально из-за обновлений. Однако есть следующие строки около строки 188:

```plaintext
  - exec:
      cd: $home
      hook: yarn
      cmd:
        - |-
          if ["$version" != "tests-passed"]; then
            rm -rf app/assets/javascripts/node_modules
          fi
        - su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'

```

В посте предлагается добавить новый раздел для установки таймаута, но конкретных инструкций, как это сделать, нет. Я не очень хорошо знаком с YAML, Pups и Yarn, а также с тем, как они используются в Discourse, поэтому не хотел гадать. Вместо этого я попробовал внести следующее изменение в исходный раздел:

```plaintext
  - exec:
      cd: $home
      hook: yarn
      cmd:
        - |-
          if ["$version" != "tests-passed"]; then
            rm -rf app/assets/javascripts/node_modules
          fi
        - su discourse -c 'yarn config set network-timeout 600000 -g && yarn install --frozen-lockfile && yarn cache clean'

```

Команда `./launcher rebuild app` теперь выполняется очень долго (более двух часов!, значительно дольше, чем раньше). Хорошая новость в том, что форум снова работает! Отлично, спасибо за помощь.

Есть ли способ увеличить таймаут, добавив команду в `containers/app.yml`? Это было бы удобно, так как все мои настройки остались бы в одном файле.

Использование конфигурации с двумя контейнерами звучит как отличная идея; я не знал, что это возможно. Думаю, вы имеете в виду это: [Move from standalone container to separate web and data containers](https://meta.discourse.org/t/move-from-standalone-container-to-separate-web-and-data-containers/29413); я попробую это реализовать. Любые дополнительные советы будут приняты с благодарностью.

Когда я обновляю свой экземпляр Discourse через браузер, выполняется ли также команда `./launcher rebuild app`? При этом форум временно становится недоступным? До сих пор у меня сложилось впечатление, что форум остается онлайн в течение большей части процесса, но я не уверен. Эти моменты никогда не были для меня ясны, и у меня никогда не было времени, чтобы во всем разобраться. Любые ответы или ссылки на дополнительную информацию будут приняты с благодарностью.

---

_[View the full topic](https://meta.discourse.org/t/error-during-rebuild-registry-yarnpkg-com-esockettimedout/319714)._
