I ran into the problem that when starting a second application, the first one begins to crash.
Você não mencionou nenhuma especificação do sistema do seu VPS. Para mim, isso parece que você está ficando sem memória. Você quer dizer que quando a aplicação falha, a JVM não é mais mostrada na lista de processos? Você deve verificar a saída de dmesg
para ver se a JVM foi eliminada pelo killer da OOM.
I find this weird, since I thought each Atlassian app came with it's own Tomcat... so I'm wondering if I just need to find a way to "use different Tomcat containers",
Todos os aplicativos da Atlassian são empacotados com um Tomcat. Você também pode baixar os aplicativos nos pacotes WAR. Você pode implantar esses pacotes em seus próprios servidores de aplicativos, se quiser, mas isso é outra história.
Colocar todos os aplicativos em um contêiner do Tomcat não é sábio. De sua descrição deduzo que você não está familiarizado com a execução de vários aplicativos em uma instância do Tomcat. Portanto:
- Os aplicativos que você menciona (Confluence, JIRA, Crowd) têm requisitos de memória diferentes, especialmente quando você instala plugins neles. Você vai encontrar erros de OOM com muita facilidade.
- A atualização dos aplicativos é muito mais fácil quando todos os aplicativos estão em execução em suas próprias instâncias do Tomcat. De uma perspectiva de segurança, isso é muito importante.
- Se você quiser migrar um aplicativo para outro servidor, basta copiar toda a instância do Tomcat como está com o aplicativo. Apenas pequenas alterações de configuração são necessárias.
Um fluxo de trabalho muito breve para instalar esse ambiente:
- Crie usuários separados para todos os aplicativos.
- Baixe aplicativos (a versão do pacote do Tomcat) e extraia-os.
- Configure
server.xml
para que os aplicativos estejam sendo executados em portas diferentes. Isso é crucial. Caso contrário, apenas um aplicativo pode reservar uma porta TCP para o conector HTTP / AJP do Tomcat. Use uma porta exclusiva por aplicativo. - Crie hosts virtuais para todos os aplicativos.
- Inicie os aplicativos por usuário do aplicativo.
So, part #2: are linux containers / docker the accepted solution to my problems?
É uma solução. Você deve considerar sua configuração. Se sua configuração atual permitir que você execute todos os aplicativos em suas próprias instâncias do Tomcat, quais são os benefícios de executá-los em contêineres separados do Linux? É muito fácil manipular sua configuração com o Docker. Além disso, se o Docker não for algo com o qual você esteja familiarizado, você terá que aprender a usá-lo.