Volumes compartilhados em App.yml para configuração de dois sites

Gostaria de modificar meu app.yml para que eu possa iniciar outro Discourse (contêiner separado, banco de dados separado, tudo separado possível! — para portabilidade) na mesma máquina (executando atrás do nginx).

Então, minha primeira configuração fica assim (as partes importantes):

## app.yml para site01
volumes:
  - volume:
      host: /var/discourse_site01/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse_site02/shared/standalone/log/var-log
      guest: /var/log

.. e isso funciona muito bem — a instância está online e tudo está ótimo. Agora, gostaria de hospedar outro Discourse, para o qual preparei os volumes compartilhados assim em outro app.yml:

## app.yml para site02
volumes:
  - volume:
      host: /var/discourse_site02/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse_site02/shared/standalone/log/var-log
      guest: /var/log

Nesta segunda configuração, há alguma pegadinha? Estou executando isso em uma máquina de produção, então queria verificar se este app.yml está correto.

Recomendo fortemente testar isso em uma cópia clonada ou de staging antes, nunca diretamente em um servidor ativo.

Pode elaborar sobre o uso do nginx? Existem outros serviços de produção na mesma máquina?

@Stephen: o nginx é simplesmente um proxy reverso para a primeira instância do Discourse. Nada complicado. Na verdade, a configuração é a mesma que segui no meta.discourse para configurar o nginx como servidor de front-end.

Não há outros serviços rodando na máquina. Na verdade, como é uma máquina de produção, configurei tudo em uma pasta de host completamente separada discourse_site02. Faz sentido?

Você vê algum problema no app.yml que descrevi? Ou acha que algo está errado na minha configuração?

Há algum motivo para você não estar usando uma instalação multissítio com dois contêineres? Não creio que você perca muita portabilidade aqui; a maneira mais rápida de mover instâncias entre servidores é migrando um backup.

Caso precise mover uma instância, basta levantar um novo servidor, marcar a instância antiga como somente leitura, atualizar o DNS e restaurar o backup. Com um serviço de DNS de TTL baixo, como o Cloudflare, um site pequeno pode ser migrado em minutos. Os usuários experimentariam um breve período de acesso somente leitura, sem perda de conteúdo.

É muito mais eficiente dividir os recursos dessa forma; você não acabará executando dois servidores de banco de dados e dois servidores web em contêineres separados, o que elimina completamente a necessidade de um proxy reverso nginx.

@Stephen: sim, vi o link que você mostrou, mas, pela simplicidade na configuração (aqui temos uma equipe pequena com pouca experiência), gostaria de fazer da maneira que descrevi, o que resulta em dois bancos de dados e dois servidores web, etc. Na verdade, essa é exatamente a configuração que prefiro.

Além das ineficiências que você apontou, há alguma outra armadilha nisso?
Os dois arquivos app.yml que mostrei estão corretos?

Obrigado pelo seu tempo e pelo software incrível :smile:

melhores cumprimentos

@Stephen: só estou querendo saber, você acha que minha configuração está correta para a configuração de 2 containers?

Como eu disse, não estou procurando economizar recursos ou ser eficiente :slight_smile: só quero saber se é OK rodar assim, assumindo que não haja nenhuma pegadinha que me pegue mais tarde.