Official Atlassian support for JIRA on Docker

Hi

It looks like Atlassian is containerizing a handful of their products here: https://hub.docker.com/r/atlassian/ which is great!  We are using JIRA Core for internal work tracking and it is a great tool.  We hope to get more benefit out of the tool with some small customizations and a containerized JIRA instance for local development (and possibly even deployment) would make it even more awesome!  Are there any plans to add JIRA to this list of supported containers?  

If not, do you recommend any of the community made JIRA containers?  Here are a couple:

I'm also curious to know what the licensing details are - for example, can we use a temporary evaluation license for local development and then have a license for the deployed or production version?

Let me know!

4 answers

There is a Docker image for JIRA with Dockerfile: https://hub.docker.com/r/ivantichy/jira/

You can use trial licence in container then throw it away and keep data.

 

+1 for the question. We're currently mulling whether to deploy JIRA via these community made containers or just stick to using a VM and deploy via installer.

My concern is that if went for the container route, we might not get the support we need afterwards if run into any issues.

I run (or intend to run) all Atlassian products in containers,  and I use the installer exclusively within the container,  for product updates.

Nothing fancy,  we have several bare metal hosts with docker engine,  I start with a centos image (most tested distro by Atlassian).

Everything is mounted on NFS with the exception of caches,  which the software itself requests to be put on a local filesystem.

Even with this simple setup I appreciate the enhanced agility and consolidation that Docker's most basic features provide.  Here is what my operational environment looks like:   

run-container.sh show-status.sh start-container.sh
exec-container.sh restart-container.sh show-logs.sh show-version.sh stop-container.sh

My INSTALLER environment is more complex,  separate from operational environment,  perhaps entertaining,  the heart of it is clone_install.sh:

ATLAS-ENV.sh drop_instance.sh stop-instance.sh ZCLONE-jira.sh ZPORTS-jira-7.0.11.sh ZPORTS-usage.sh centos_prereqs.sh log-mgmt.cron tailJIRALog.sh ZCLONE-stash.sh ZPORTS-jira-7.1.10p.sh ZPROMPT-TO-QUIT.sh check_install.sh mysql_clone_db.sh ZCHECK-confluence.sh ZDEPLOY-confluence.sh ZPORTS-jira-7.1.10.sh clone_install.sh patches ZCHECK-jira.sh ZDEPLOY-crowd.sh ZPORTS-jira-7.2.8p.sh deploy_instance.sh robots.txt ZCLONE-confluence.sh ZDEPLOY-jira.sh ZPORTS-jira-7.2.8.sh docker-notes.txt start-instance.sh ZCLONE-crowd.sh ZDEPLOY-stash.sh ZPORTS-jira-7.3.4.sh

This environment was adapted and enhanced for Docker, from traditionally VM hosted scenario.  These things worked on a VM,  however it was NOT possible to isolated multiple Confluences safely within the same host.  Only one could be running at a time.    Multiple JIRAs worked more or less.   Not having containerization within the same host was unpleasant--but necessary since we were discouraged from requesting a lot of VMs.  My concern with doing all this is to wrap the out-of-the-box Atlassian operational and installation environments in order to make my job as Application Administrator sane and doable.   Mgmt would obiously like to do in-place updates and be done with it,  but this is not the way it is currently.   I once updated to the latest JIRA only to find I could not type anything into any of the text fields--lowering time to recovery is essential and requiring a database/repo restore in that case is not a low time to recovery.

The traditional hosting way of rolling forward and falling back is to mess around with symbolic links,  which is OK,  but Docker either replaces all such links with bind mounts,  or the links live inside the running container and are not seen or managed on the host.  There are some really agile features in just the basic Docker,  ignoring all the elaborate container lifecycle stuff.

The database is external to docker on traditional MySQL hosts.  Not ready to go there.   There is a script in the installer environment that copies databases easily.

I hope that since I am using the official installer and bare-bones Centos in docker essentially like a regular host,  that it wouldn't affect my ability to get support.

I haven't found anyone else doing this,   the main issue would be stability of docker hosts.   The operational scripts definitely leverage docker,  so if we deployed to a more stable host perhaps on a VM I'd still run a docker engine on there.   I can't see my mgmt backing off from Docker initiative completely,   more like they would enlist me to place the deployments on another more favored Docker environment.

In the end if we went with VM,  I suppose,  since the build is on the NFS and database is external,  I could still leverage Docker for all build/copying/configuring/testing of production environments,  then at the last minute when time comes to deploy production,  request a VM,  mount the build,  create local cache directories,  make a couple symlinks,  done.

The only thing the container does in my case is run CentOS.  Even the Java is the bundled JRE,   I use exclusively the Atlassian installers with bundled environment.

The main issue with Docker is this--is the production operational environment stable?  (hint:  use Rancher)

 Well,  there is a magic incantation you'll need to do to run JIRA standalone within the container:

docker exec -d $CONTAINERNAME /opt/app/jira/bin/start-jira.sh -fg

Use bare centos image.  Do not use phusion base or any fat container technology,  I went down that path and regretted it.  Do not use docker build (i.e. Dockerfile).   Just use docker run.  Just learn how to use Docker:  https://www.youtube.com/watch?v=1z77HDXeIEw 

Finally you will need to add this so that stop-jira works:

docker exec \
$CONTAINERNAME \
bash -c "ps -e | grep java | awk '{print \$1}' > /opt/app/jira/work/catalina.pid"

Get it?  ;)

 

Response from Atlassian support:

Thank you for contacting Atlassian Support!

There are no official plans to publish JIRA on Dockerhub.

It seems it is possible to run JIRA on Docker with a lot of customisation but it isn't supported officially.

This might change in the future but for the moment it is all done by the Atlassian Community and not Officially by Atlassian.

I hope this answers your question.

Kind regards,

Jeffrey Sjauw Mook
Atlassian Support

Indeed, your message is a reply to the question even if the answer is not acceptable for customers.

Having "no official plans" to support your products on Docker is just ridiculous and very questionable... But I should recognize it's new :) Your company, as many others, are used to "enhance" the reality.

At least, saying that there's no plan definitely helps !

Thanks.

 

Sorry Andrew :) I just saw that you quoted somehow Jeffrey's answer: this reply was not for you directly, but for Jeffrey (who may not even read the message...  :\ )

I ask myself if the support engineers are in sync with each other!?

I talked to an Atlassian support engineer at an event about our plans to move to JIRA Datacenter. He suggested me to first dockerize our JIRA because this makes scaling Datacenter so much easier...

Fair enough that they don't ship it as a docker container, but why should they not support a JIRA running inside docker? There should be no difference for the application if it runs inside docker or not, it is "only" a JAVA web app.

 

There are some unofficial JIRA/Docker containers out there but you're right. No reason why JIRA shouldn't be able to be fully containerized. Confluence is out there from Atlassian and working fine in a container, why not JIRA and JSD?

 

Suggest an answer

Log in or Join to answer
Community showcase
Sarah Schuster
Posted Jan 29, 2018 in Jira

What are common themes you've seen across successful & failed Jira Software implementations?

Hey everyone! My name is Sarah Schuster, and I'm a Customer Success Manager in Atlassian specializing in Jira Software Cloud. Over the next few weeks I will be posting discussion topics (8 total) to ...

3,314 views 14 20
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot