Utilize um período de tolerância no arranque e uma verificação de prontidão económica; não faça parecer uma falha um aquecimento esperado.
Isto é importante numa aplicação de fotografias, pesquisa ou baseada numa base de dados que precise de vários minutos para migrar, carregar índices ou aquecer caches. O risco operacional é que uma verificação agressiva possa marcar um arranque saudável como falhado e acionar automatização externa, embora o estado de saúde do Docker, por si só, não reinicie um contentor normal do Compose. Comece com uma linha de base guardada, faça uma alteração reversível de cada vez e pare sempre que o ramo observado deixar de corresponder ao caminho de configuração pretendido.
Estabelecer a Linha de Base das Verificações de Saúde de Contentores de Arranque Lento
Antes de alterar definições, registe a duração do arranque a frio, o tempo de execução da verificação, as transições de estado de saúde, a prontidão das dependências e os registos da aplicação. Capture a configuração original e uma execução semelhante à de produção, para que as melhorias posteriores sejam comparadas com a mesma carga de trabalho e não com a memória ou um estado sintético de inatividade.
Utilize as atuais definições de verificação de saúde do Compose para confirmar o controlo suportado e a sua semântica. Considere as predefinições um ponto de partida conhecido, não uma prova de que a definição corresponde a este servidor, conjunto de clientes ou objetivo de recuperação.
Defina os critérios de aceitação e as condições de paragem antes de editar. O sinal de aceitação tem de ser visível nos registos, no estado do protocolo, na saída da aplicação ou nos dados restaurados; a condição de paragem tem de impedir um acesso mais amplo, perda de dados, esgotamento de recursos ou uma indisponibilidade que consuma a próxima janela de recuperação.
Aplicar a Alteração das Verificações de Saúde de Contentores de Arranque Lento em Etapas Controladas
Passo 1: Verifique um endpoint local de prontidão ou um comando de estado nativo em vez de um fluxo de trabalho completo do utilizador. Após a alteração, inspecione imediatamente o estado esperado; se não aparecer, reverta este passo antes de aplicar o seguinte.
Passo 2: Defina start_period para um valor superior ao arranque a frio normal observado e utilize depois um intervalo mais curto em estado estável e um número limitado de tentativas. Após a alteração, inspecione imediatamente o estado esperado; se não aparecer, reverta este passo antes de aplicar o seguinte.
Passo 3: Mantenha a política de reinício separada da interpretação do estado de saúde e faça com que qualquer watchdog exija várias verificações falhadas em estado estável. Após a alteração, inspecione imediatamente o estado esperado; se não aparecer, reverta este passo antes de aplicar o seguinte.
healthcheck:
test: ["CMD", "appctl", "ready"]
start_period: 180s
interval: 30s
timeout: 5s
retries: 3
Interpretar os Ramos de Sucesso, Falha e Exceção
Um sucesso significa que a aplicação passa de arranque a saudável uma vez e permanece saudável durante dois arranques a frio. Registe a carga de trabalho, a versão e o tempo exatos que produziram o resultado; um teste mais leve não é prova de que o problema original foi resolvido.
Uma falha significa que a verificação excede o tempo limite enquanto a aplicação ainda está a progredir, ou que passa antes de as dependências estarem utilizáveis. Não compense enfraquecendo todos os controlos adjacentes. Regresse à última linha de base limpa e isole se a discrepância pertence à identidade, à rede, ao armazenamento, à prontidão da aplicação ou à capacidade.
Perante uma exceção ou um resultado ambíguo, restaure a verificação de saúde anterior e desative qualquer watchdog acionado pelo estado de saúde antes de ajustar a aplicação. Escale apenas depois de o discriminador de baixo risco ser repetível e as evidências mostrarem que é necessária uma alteração mais profunda na plataforma ou no hardware.
Verificar a Persistência com a Carga Original do Servidor Doméstico
Repita o mesmo percurso do cliente, tamanho dos ficheiros, simultaneidade, evento de suspensão ou reinício e carga de trabalho concorrente utilizados na linha de base. Execute pelo menos dois ciclos, para que um sucesso com a cache aquecida, uma única reconexão bem-sucedida ou um único arranque limpo não seja confundido com persistência.
Confirme tanto o sucesso como a contenção: a aplicação passa de arranque a saudável uma vez e permanece saudável durante dois arranques a frio, enquanto utilizadores, serviços, partilhas e caminhos administrativos não relacionados mantêm o comportamento original. Consulte o fluxo de trabalho ZimaSpace relacionado quando a alteração tocar num limite vizinho de armazenamento, rede ou recuperação.
Feche a alteração apenas quando o sinal de aceitação persistir e a reversão continuar utilizável. Se a verificação exceder o tempo limite enquanto a aplicação ainda está a progredir, ou passar antes de as dependências estarem utilizáveis, pare a automatização, preserve os registos e a configuração guardada e regresse ao último estado verificado, em vez de acumular mais alterações.
FAQ sobre a Expansão de Consultas, Decisão Final e Teste Final
Estas perguntas sobre a expansão de consultas abrangem as decisões seguintes que os utilizadores normalmente pesquisam depois de a configuração principal funcionar. Estendem o limite sem introduzir um caminho de reparação não testado.
Aplique cada resposta apenas quando a respetiva condição corresponder ao ambiente medido. Diferenças de versão, protocolo, sistema de ficheiros, cliente e limite de confiança podem alterar o ramo correto.
Mantenha as respostas juntamente com o manual de operações e atualize-as após atualizações ou alterações de topologia. Qualquer exceção que amplie o acesso de escrita, a acessibilidade da rede ou a autoridade de eliminação exige um novo teste de reversão e recuperação.
Uma verificação de saúde deve testar o URL público?
Normalmente, não. Utilize um caminho local de prontidão para que o DNS, o TLS e o proxy inverso não transformem uma única verificação num teste de toda a pilha.
Um estado não saudável reinicia um serviço Compose?
Não, por si só, no Compose normal. Um orquestrador ou watchdog separado tem de agir sobre o estado, pelo que esse caminho de controlo deve ser documentado.
Qual deve ser a duração de start_period?
Utilize um arranque a frio de percentil elevado medido, acrescido de uma margem, e volte a testar após atualizações ou migrações da base de dados.
Conclusão: A configuração está concluída quando a aplicação passa de arranque a saudável uma vez e permanece saudável durante dois arranques a frio, o ramo de falha é compreendido e a reversão documentada não depende do componente que está a ser alterado.
Protocolo de teste final: restaure a linha de base guardada, aplique uma vez a alteração aprovada, repita a carga semelhante à de produção original, verifique o sinal de sucesso e o limite de contenção e, em seguida, execute a reversão com dados descartáveis. Mantenha a alteração apenas quando as cinco observações forem concordantes.
Suporte e Dicas
Mais para Ler

Uma galeria autoalojada pode preservar o emparelhamento das Live Photos da Apple?
Uma decisão condicional para um servidor doméstico relativa ao emparelhamento de Live Photos da Apple, com testes controlados, interpretação dos resultados, reversão e perguntas...

Pode importar o Google Takeout e as cópias de segurança do telemóvel para uma única biblioteca de fotografias?
Uma decisão condicional para um servidor doméstico com importação combinada de fotografias, testes controlados, interpretação dos resultados, reversão e perguntas frequentes específicas.

O Immich pode usar uma biblioteca externa sem assumir a propriedade dos ficheiros?
Uma decisão condicional de servidor doméstico sobre a propriedade de bibliotecas externas do Immich, com testes controlados, interpretação dos resultados, reversão e perguntas frequentes...

