Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Deploy 2 data center nodes of Jira in docker

Hello!

In this article I will show you how you can deploy 2 data center nodes of Jira Software in your local environments using the docker image provided by Atlassian.

This deployment will not include the load balancer because I need these nodes for app development to check if my app works properly in Data Center environment. That is why I always connect to a certain node.

First, you need to create this docker-compose.yml file:

version: '3'

services:
jira_node_1:
depends_on:
- postgresql
image: atlassian/jira-software:latest
networks:
- jiranet
volumes:
- /Users/alexm/projects/prometheus/shared:/var/atlassian/application-data/jira/shared
ports:
- '8080:8080'
- '8000:8000'
environment:
- 'ATL_JDBC_URL=jdbc:postgresql://postgresql:5432/jiradb'
- 'ATL_JDBC_USER=jira'
- 'ATL_JDBC_PASSWORD=jellyfish'
- 'ATL_DB_DRIVER=org.postgresql.Driver'
- 'ATL_DB_TYPE=postgres72'
- 'JVM_MINIMUM_MEMORY=2048m'
- 'JVM_MAXIMUM_MEMORY=4096m'
- 'JVM_SUPPORT_RECOMMENDED_ARGS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000"'
- 'CLUSTERED=true'
- 'JIRA_NODE_ID=node_1'
logging:
# limit logs retained on host to 25MB
driver: "json-file"
options:
max-size: "500k"
max-file: "50"

jira_node_2:
depends_on:
- postgresql
image: atlassian/jira-software:latest
networks:
- jiranet
volumes:
- /Users/alexm/projects/prometheus/shared:/var/atlassian/application-data/jira/shared
ports:
- '8081:8080'
- '8001:8000'
environment:
- 'ATL_JDBC_URL=jdbc:postgresql://postgresql:5432/jiradb'
- 'ATL_JDBC_USER=jira'
- 'ATL_JDBC_PASSWORD=jellyfish'
- 'ATL_DB_DRIVER=org.postgresql.Driver'
- 'ATL_DB_TYPE=postgres72'
- 'JVM_MINIMUM_MEMORY=2048m'
- 'JVM_MAXIMUM_MEMORY=4096m'
- 'JVM_SUPPORT_RECOMMENDED_ARGS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000"'
- 'CLUSTERED=true'
- 'JIRA_NODE_ID=node_2'
logging:
# limit logs retained on host to 25MB
driver: "json-file"
options:
max-size: "500k"
max-file: "50"

postgresql:
image: postgres:9.5-alpine
networks:
- jiranet
volumes:
- postgresqldata:/var/lib/postgresql/data
ports:
- '5432:5432'
environment:
- 'POSTGRES_USER=jira'
# CHANGE THE PASSWORD!
- 'POSTGRES_PASSWORD=jellyfish'
- 'POSTGRES_DB=jiradb'
- 'POSTGRES_ENCODING=UNICODE'
- 'POSTGRES_COLLATE=C'
- 'POSTGRES_COLLATE_TYPE=C'
logging:
# limit logs retained on host to 25MB
driver: "json-file"
options:
max-size: "500k"
max-file: "50"

volumes:
postgresqldata:
external: false

networks:
jiranet:
driver: bridge

Change '/Users/alexm/projects/prometheus/shared' to the folder path where all shared data for your nodes should be placed.

Move to the folder where you created the file and run it with this command:

docker-compose up

As a result you will have two Jira Software nodes up. Node_1 will be running on port 8080 and Node_2 will be running on port 8081.

Also you will be able to connect with a debug session to the nodes using ports 8000 for node_1 and 8001 for node_2.

If you have problem with including the second node to the cluster just restart the container with the second node.

4 comments

Vikrant Yadav
Community Champion
January 13, 2022

Thanks a lot! for sharing such useful information. 

Pramodh M
Community Champion
January 13, 2022

Fun with Docker!!

Going to bookmark this one for sure 😃

Thanks @Alexey Matveev  for sharing this in Community 🙂

Marco Cassanelli September 26, 2022

Hi, in this way we'll have 2 nodes on the same server anyhow.

What about 2 instances on docker but on separate servers? Is that possible?

Ramesh jayawardana January 19, 2023

Thanks for the wonderful peace of knowledge share @Alexey Matveev
This is really helpful.

Comment

Log in or Sign up to comment
TAGS
atlassian, confluence administration certification, atlassian certified professional, confluence admin for cloud, atlassian learning, confluence training, confluence certification exam, confluence cloud admin, admin credential, atlassian certification

Become a certified Confluence admin today! 📖

Stand out as a skilled Confluence Cloud administrator. The Confluence Administration for Cloud certification proves you can configure permissions, manage site and space settings, and monitor activity—ensuring secure, effective collaboration for your team.

Start here
AUG Leaders

Atlassian Community Events