Acabei de tentar atualizar pela interface web. A primeira parte correu bem, mas a segunda etapa (atualizar a versão do Discourse) foi concluída parcialmente, depois apresentou um erro, e o fórum não funciona mais (apenas a página ‘Oops’).
Ao fazer login via ssh (para executar manualmente ./launcher rebuild app), recebo:
ERRO: Versão do Docker 18.06.3-ce não suportada, por favor atualize para pelo menos 20.10.0, ou a recomendada 24.0.7
Deixando de lado as possíveis soluções para esse problema (que estão além do meu nível de conforto/competência), estou me perguntando se isso era o esperado? Eu tinha a vaga ideia de que a interface do usuário deveria ser à prova de idiotas, e que seria necessário usar ssh para fazer as coisas perigosas, então me senti confortável em tentar sem antes garantir que meu especialista em TI estaria disponível como backup.
Ela faz um esforço valente, mas se as partes subjacentes estiverem quebradas, não há nada que ela possa fazer.
O Dashboard.literatecomputing.com fará uma atualização de linha de comando com um clique e atualizará o docker, se necessário. Ele também reiniciará o contêiner existente se a criação de um novo falhar.
Ainda há coisas que podem dar errado.
O maior benefício para a atualização da experiência do usuário é a falta de tempo de inatividade, que uma configuração de dois contêineres fornece em grande parte.
O Docker desatualizado conta como quebrado? Eu tenderia a chamar isso de uma alteração que quebra a compatibilidade por parte do Discourse.
Vou dar uma olhada. É verdade que somos auto-hospedados e o sistema operacional também está desatualizado, então sabíamos que haveria algum trabalho a ser feito mais tarde, apenas não que isso nos seria forçado inesperadamente.
Se você olhar em Docker Engine | endoflife.date (e clicar no botão “mostrar mais lançamentos não mantidos”), verá que o suporte ao Docker 18 terminou há 6 anos (18 de agosto de 2018). Realmente não é cedo demais para atualizar.
Então, sim, se você está tão desatualizado no docker e no seu sistema operacional como você sabia que estava, então você também não deveria atualizar o Discourse.
Não tenho certeza se é possível para o Discourse saber qual é a versão subjacente do Docker que ele está executando para poder avisá-lo na UX.