Estou usando o repositório discourse_docker com o script launcher para executar uma instância interna do Discourse. Gostaria de alterar persistentemente a política de reinicialização de always para unless-stopped para poder manter os contêineres Docker parados ao fazer atualizações/reinicializações do sistema operacional.
Posso ver que a política de reinicialização é uma variável no script do launcher, mas qual a melhor forma de manter essa configuração quando um novo contêiner é construído? Deve funcionar tanto via “launcher rebuild” quanto usando o docker_manager via /admin/upgrade.
Sim, eu sei disso A atualização do Docker é o que estou fazendo no momento. Mas tenho medo de esquecê-la em algumas das próximas reconstruções. Daí a pergunta de como torná-la persistente.
Outra opção seria apenas editar o script do lançador e torcer para não haver muitos conflitos de rebase ao fazer o pull
A única vez que tive problemas com reinicializações após um boot foi se eu mudei de app.yml para web_only.yml e esqueci de destruir o container app. Eu faço upgrades e reinicializações do docker regularmente sem nenhum problema com os autostarts. FWIW, eu não vi ninguém mais preocupado com isso nos últimos 5 anos. A menos que você tenha algo em jogo que eu não saiba, talvez não se preocupe com isso?
Bem, hoje o problema foi que eu queria fazer uma instalação limpa, pois tinha uma versão estranha 2.4.0-betaXYZ que não atualizava sozinha. Fiz um teste em outra VM com uma instalação limpa e restaurei o backup para 2.7.12, o que funcionou perfeitamente (também dividi o contêiner de dados em redis e postgres).
Agora, o servidor principal ainda estava executando um Ubuntu antigo e um Docker antigo, então eu queria:
fazer um backup
desligar o Discourse
fazer as artimanhas de atualização do SO sem me preocupar com o Discourse, incluindo várias reinicializações
Fazer uma instalação limpa
Restaurar o backup
Eu só queria manter os contêineres desligados e não excluí-los imediatamente, pois não tinha mais certeza se precisava de algo deles que poderia ter esquecido durante meu teste. E eu pensei, ei, unless-stopped é para mim a política de reinicialização perfeita, pois garante que os contêineres iniciem automaticamente após a reinicialização, a menos que você os pare manualmente. Geralmente é exatamente o que eu quero, então pensei por que não tentar tornar isso permanente.
Não é um grande problema se não for possível. Apenas farei a atualização do docker (ou se eu continuar esquecendo com muita frequência, farei a atualização do docker via cron a cada 5 minutos )