Acabei de executar um ./launcher rebuild app — sem alterações nos arquivos relacionados ao sistema. Agora estou preso nos pontos piscantes do Discourse.
Verifiquei o seguinte:
O docker ps mostra a imagem do aplicativo Discourse (parece normal).
O comando top mostra atividade (parece normal).
Posso ver o status do Sidekiq (parece normal).
Então, reconstruí o aplicativo novamente.
Mesmos resultados.
Tentei usar o Modo de Segurança. Tudo desativado. Nenhuma mudança. Ainda estou recebendo a tela dos pontos piscantes.
Revisei cada linha do código-fonte. Vejo que tenho quatro arquivos JS que não estão disponíveis. Eles são:
Existem vários arquivos JavaScript ausentes. Estes foram os primeiros encontrados.
Revisão inicial:
Os arquivos não estão disponíveis através da minha entrega de CDN.
A CDN puxa do meu bucket S3.
Os arquivos não estão no meu bucket S3 onde todos os outros ativos são armazenados.
Olhando para os resultados da reconstrução, posso ver o seguinte.
Os 4 arquivos foram criados e gravados em public/assets/ com a extensão de arquivo .js.
Os 4 arquivos foram compactados e salvos com a extensão de arquivo .br.js.
Verificando meu servidor:
Todos os 4 arquivos .js estão disponíveis no meu servidor.
Os arquivos .br.js não estão disponíveis no meu servidor.
Os arquivos .br.js não estão no meu bucket S3.
Percorrendo os resultados da reconstrução, parece que a atividade after_assets_precompile não está acontecendo em minhas reconstruções. Posso executar manualmente um rake s3:upload_assets e os ativos são migrados para o S3 e tudo funciona bem.
Verifiquei o seguinte:
Meu arquivo yml passa nas verificações de formatação adequada.
O que posso verificar para determinar por que o after_assets_precompile não está processando como parte da reconstrução?
Você pode encontrar essa tarefa rake lá e executá-la de dentro do contêiner (para economizar o tempo de uma reconstrução). E então faça uma reconstrução assim que editar seu arquivo yml.
O S3 está ativo e funcionando no site há 43 dias. Os comandos rake foram colocados lá como parte da instalação do S3.
O site foi reconstruído pelo menos 30 vezes. Adicionei plugins e componentes adicionais ao longo do caminho. Isso indicaria que arquivos .js foram adicionados e populados no bucket S3.
O componente S3 tem funcionado muito bem. Esta é a primeira vez que tenho problemas com arquivos não sendo migrados para o S3.
O que posso investigar para entender por que os arquivos não foram movidos?
Alguém sabe o que pode causar a falha na execução do after_assets_precompile?
Como teste, movi os comandos after_assets_precompile para a seção de comandos personalizados.
run:
- exec: echo "Início dos comandos personalizados"
## Se você quiser definir o endereço de e-mail 'De' para o seu primeiro registro, descomente e altere:
## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Só precisa ser executada uma vez.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
## comando para proteger o site com senha durante o trabalho. remova para produção.
- exec:
cd: $home
cmd:
- echo "Início dos comandos de pré-compilação"
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
- exec: echo "Fim dos comandos personalizados"
Os comandos funcionaram sem problemas. Isso descarta problemas de acesso ambiental ou de segurança.
O processo do launcher está pulando o código after_assets_precompile durante a reconstrução.
@supermathie - você é incrível e tem uma visão fantástica. Você conseguiu ver que o código não estava com recuo de dois espaços. E apenas de um único trecho em vez da seção mais extensa. Obrigado.
Adicionei os dois espaços e isso resolveu o problema.
Eu havia executado o app.yml anteriormente em um verificador de yml. A ferramenta de teste me disse que o arquivo estava estruturalmente correto. Ela não pôde me dizer que estava funcionalmente errado.