Container de aplicativo Bootstrap em 2 etapas

@pfaffman Se você der uma olhada nas alterações que fiz, não modifiquei as instruções do modelo web em discourse_docker, apenas as separei em 3 arquivos. Na verdade, isso é o único que solicitei: um deles executa instruções que podem ser independentes do ambiente, como instalar gems do Ruby, o repositório do Discourse e dos plugins, e assim por diante; outro faz algumas validações; e o terceiro faz coisas específicas do ambiente, como executar a migração do banco de dados e pré-compilar os ativos.

A complexidade que, acredito, isso adiciona é que, quando algo for adicionado a esses arquivos, a equipe do Discourse deverá considerar se são ou não específicos do ambiente (como depender de coisas no banco de dados) e, com base nisso, definir em qual arquivo devem ser incluídos.

A instalação oficial funcionaria da mesma forma que funciona agora, exceto por incluir os 3 modelos no arquivo app.yml (ou fazer com que o arquivo templates/web.template.yml inclua esses 3, se for possível, e neste caso, do ponto de vista do usuário, nada mudaria), em vez de fazer isso em mais de 1 etapa (não teria os benefícios da instalação em 2 etapas, mas funcionaria exatamente como é feito atualmente, portanto, sem mudanças que quebrem a compatibilidade).

Sei que coisas de sysadmin podem ser realmente complexas, mas tentei fazer da maneira mais direta possível, considerando como é feito atualmente, para evitar muita complexidade (por isso não mencionei k8s, separar os serviços em um arquivo docker-compose ou coisas semelhantes, pois isso exigiria grandes mudanças; em vez disso, baseei-me em como é feito na instalação oficial).

5 curtidas