I'm trying to set up a jira cluster, running in docker containers across two VMs. After initial setup, I can see the successful creation of the cluster in the GUI, but when I check the logs of node 2, its trying to connect to the DOCKER IP of node 1, and not the host IP. Here's an example error:
2026-01-07 18:41:03,225+0000 localq-reader-17 INFO [c.a.j.c.distribution.localq.LocalQCacheOpReader] [LOCALQ] [VIA-COPY] Checked exception: RecoverableFailure occurred when processing: LocalQCacheOp{cacheName='com.atlassian.cluster.monitoring.spi.ClusterMonitoring.cache', action=PUT, key=CustomSerializedValue{value=nodeKey{nodeId='jira-2', key='com.atlassian.cluster.monitoring.cluster-monitoring-plugin:system-information'}, isValueSerializable='true', pluginKey='com.atlassian.jira.jira-cluster-monitoring-plugin'}, value == null ? false, replicatePutsViaCopy=true, creationTimeInMillis=1767811258215} from cache replication queue: [queueId=queue_jira1_7_3c177fc9a73549bf63b836dc4124cadc_put, queuePath=/var/atlassian/application-data/jira/localq/queue_jira1_7_3c177fc9a73549bf63b836dc4124cadc_put], failuresCount: 1. Will not retry as this is a cache replicated by value. Removing from queue.
com.atlassian.jira.cluster.distribution.localq.LocalQCacheOpSender$RecoverableFailure: java.rmi.ConnectIOException: Exception creating connection to: X.X.X.X; nested exception is:
That X.X.X.X IP is the docker container IP, but it should be the host IP. I can see why this happening because the /etc/hosts file on the container has the following entry which needs to be removed:
127.0.0. localhost
The problem is that I cannot remove this entry inside of the container. I read a post from a user, who set up a clutser where both nodes(containers) were on the same VM, but I'm trying to get this working across seperate VMs.
Thanks!
Hi @Xavier
Welcome to the Atlassian Community!
Instead of trying to modify the immutable /etc/hosts file inside the container, you can solve this cleanly by passing a Java system property to Jira. This explicitly forces the node to advertise the host VM's external IP address for cluster communications.
You need to pass the Host VM's IP address into each container's JVM arguments.
If you are using Docker Compose or running the container via CLI, add the following property to your JVM_SUPPORT_RECOMMENDED_ARGS environment variable:
JVM_SUPPORT_RECOMMENDED_ARGS=-Dcluster.node.hostname=YOUR_HOST_VM_IP
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.