Erro durante a reconstrução: registry.yarnpkg.com ESOCKETTIMEDOUT

Infelizmente, simplesmente executar

./launcher start app

não traz o fórum de volta.

De qualquer forma, fiz mais experimentos. Especificamente, tentei executar manualmente o comando yarn com falha na imagem do docker:

./launcher enter app
cd /var/www/discourse
su discourse
yarn install --frozen-lockfile
... falha com o mesmo timeout ...
yarn config set network-timeout 600000 -g
yarn install --frozen-lockfile
... succeeds ...

Isso confirma que aumentar o timeout resolve o problema.

A questão restante, então, é como aumentar o timeout também durante ./launcher rebuild app.

O arquivo web.template.yml está de fato localizado em discourse/containers fora da imagem do docker. Eu não o encontrei inicialmente, porque minha instalação do Discourse está em um local não padrão, não em /var/discourse.

A correção mencionada na postagem referenciada acima se refere à linha 159, mas isso não parece mais correto, provavelmente devido a atualizações. Existem, no entanto, estas linhas por volta da linha 188:

  - 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'

A postagem sugere inserir uma nova seção para definir o timeout, mas não fornece instruções específicas sobre como fazer isso. Não sou muito familiarizado com yaml, pups e yarn ou como eles são usados no Discourse, então não quis adivinhar. Em vez disso, tentei esta alteração na seção original:

  - 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'

O comando ./launcher rebuild app agora leva muito tempo (mais de duas horas!, muito mais tempo do que costumava levar). A boa notícia é que o fórum está de volta online! Ótimo, obrigado pela ajuda.

Existe uma maneira de aumentar o timeout adicionando um comando a containers/app.yml? Isso seria conveniente, pois manteria todas as minhas personalizações juntas em um único arquivo.

Usar uma configuração de 2 contêineres parece uma ótima ideia; eu não estava ciente de que isso era possível. Acho que você está se referindo a isto: Move from standalone container to separate web and data containers; vou tentar. Qualquer conselho adicional é bem-vindo.

Quando executo uma atualização da minha instância do Discourse pelo navegador, ela também executa ./launcher rebuild app? Ela tira o fórum do ar temporariamente? Até agora, eu tinha a impressão de que o fórum permanecia online durante a maior parte do processo, mas não tenho certeza. Essas coisas nunca foram claras para mim e eu nunca tive tempo de realmente descobri-las. Quaisquer respostas ou indicações para mais informações são bem-vindas.

1 curtida