Ok, this is a two-part question.
I got an unmanaged VPS with CentOS from a hosting company in order to install several Atlassian tools, however, I ran into the problem that when starting a second application, the first one begins to crash.
So far I have installed Confluence (running on port 8090), JIRA (running on 8080) and Crowd (some other port I cannot remember), but I can only run one at a time. I tried setting up a reverse proxy but this does not seem to work.
While doing some research I found that apparently this is not possible:
https://confluence.atlassian.com/display/JIRA/Deploying+Multiple+Atlassian+Applications+in+a+Single+Tomcat+Container
https://confluence.atlassian.com/display/DOC/Installing+Confluence+and+JIRA+Together
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", but I am stupid and I don't even know what that means (yes, I used teh googles, and they do nothing).
So, part #1: am I missing something?, or there is just no way of doing this in an accepted way
I think I found a solution though, linux containers:
http://blogs.atlassian.com/2013/06/deploy-java-apps-with-docker-awesome/
http://blogs.atlassian.com/2015/01/stash-docker/
http://blogs.atlassian.com/2013/11/docker-all-the-things-at-atlassian-automation-and-wiring/
Since they seem to isolate the running envirnoment and even enable you to setup network routing between the container and your OS.
So, part #2: are linux containers / docker the accepted solution to my problems?
I honestly don't feel like renting several servers…
Best Answer
You did not mention any system specifications of your VPS. For me this sounds like you're running out of memory. Do you mean that when the application crashes, the JVM is not shown in the process list anymore? You should check the output of
dmesg
to see if the JVM was killed by OOM killer.All Atlassian applications are bundled with a Tomcat. You can download the applications in WAR packages as well. You can deploy these packages into your own application servers, if you want to, but that's another story.
Putting all applications into one Tomcat container is not wise. From your description I deduce that you are not familiar with running multiple applications in one Tomcat instance. Therefore:
A very brief workflow for installing such environment:
server.xml
so that the applications are running in different ports. This is crucial. Otherwise only one application can reserve a TCP port for the Tomcat HTTP/AJP connector. Use a unique port per application.It's one solution. You should consider your setup. If your current setup allows you to run all applications in their own Tomcat instances, what are the benefits of running them in separate Linux containers? It is very easy to over-engineer your setup with Docker. Also, if Docker is not something you're familiar with, you'll have to learn how to use it.