Validação YML antes da reconstrução?

Isso está em uma instalação Discourse auto-hospedada em um VPS privado com uma instalação Docker típica.

Eu fiz isso de novo:
Esperei por duas horas por uma reconstrução de atualização “impecável” para v3.4.0.beta2-dev.
Em seguida, adicionei algumas linhas ao app.yml e esperei mais duas horas por outra reconstrução.
(Por que separar as operações? Porque uma dupla martelada nunca é boa se houver potencial para erros.)
Então, encontrei erros de tempo de execução no log porque esqueci espaços no app.yml (para a conta e chave MaxMind).
Então, esta noite, preciso fazer mais uma reconstrução.

Isso representa mais de seis horas de inatividade virtual, em comparação com um site WordPress ou outro CMS que levaria apenas alguns minutos no exato mesmo cenário. Isso grita “UX ruim” e, portanto, “anti-marketing” - simplesmente não é bom para a plataforma.

A única razão pela qual tive que fazer uma segunda reconstrução foi porque adicionei essas duas malditas linhas. Eu realmente gostaria que uma reconstrução completa não fosse necessária apenas por causa dessa pequena alteração no arquivo de configuração.

  1. Houve alguma discussão sobre fazer uma validação no arquivo yml antes de uma reconstrução? Esse recurso simples teria eliminado uma operação demorada e problemas subsequentes.

  2. Houve alguma discussão sobre um pré-processador que determina se uma reconstrução completa é necessária após alterações específicas?

  3. Fiquei surpreso que um erro YAML não foi relatado nos logs. Existe alguma razão pela qual a pasta principal .yml em tempo de execução e talvez outras não são verificadas quanto a erros sintáticos? … Ou administradores mais experientes fazem sua própria verificação antes de uma reconstrução? :thinking:

Estou hospedando em Docker porque acredito que é a plataforma “mais fácil” se/quando eu passar este sistema para outra pessoa para manutenção. Se isso não estiver correto, e eu optei por não apenas “não o mais fácil”, mas também “o mais lento”, talvez eu devesse considerar uma opção de instalação diferente.

Obrigado!

Uma configuração de dois contêineres pode criar o novo contêiner enquanto o antigo continua em execução, de modo que haja apenas um minuto ou mais de inatividade enquanto o novo contêiner é inicializado.

Esse é um tempo de reconstrução muito bom. Imagino que você esteja usando Raspberry Pi ou algo igualmente lento?

Normalmente, se houver um problema de configuração no yml, você é notificado imediatamente.

Você pode verificar o tamanho do arquivo usando este código, então você pode analisar se é um problema de espaço

/var/discourse# du -sh /* | sort -h

Exceto com esses dois espaços com MaxMind. Ele passa, mas as coisas de geolocalização não funcionam. Portanto, não é um erro de sintaxe yml em si, mas ainda é um erro :man_shrugging:

1 curtida