0

I'm running Geode (v1.14.0) servers/locators in Docker containers. I'm trying to run Pulse as a standalone WAR running in Tomcat in a Docker also. I can connect fine when running the Pulse WAR in Tomcat outside of the container so I suspect it's a ports or hostname issue. I'm currently mapping 8080 inside the container to 8081. I can load the Pulse UI in the browser but it keeps saying "Connecting..." in a yellowish box at the top of the page and doesn't find the Geode locator.

Looking in pulse.log, I see the following exception repeatedly:

java.net.ConnectException: Connection refused (Connection refused)

pulse.properties is configured to the defaults:

# JMX Locator/Manager Properties
pulse.useLocator=true
pulse.host=localhost
pulse.port=10334

#pulse.useSSL.locator=true
#pulse.useSSL.manager=true

Essentially I'm starting the Geode server/locator nodes with this command:

docker run -it -p 7070:7070 -p 10334:10334 -p 40404:40404 -p 40405:40405 -p 40406:40406 -p 1099:1099 apachegeode/geode

What are the Docker ports that need to be open for Pulse to work and is there any specific hostname config required?

  • In your pulse config, you set the host to localhost, I think you should set it to the geode server's docker container name and launch both pulse and geode in the same docker network. When you run a separate docker container, localhost translates to that particular container itself and not the host machine – greenPadawan Jun 22 '20 at 11:10
  • Thanks @greenPadawan, I'll give that a go. – Russell Martin Jun 22 '20 at 11:12

1 Answers1

1

Based on the comment from @greenPadawan (thanks) I solved this as follows:

Create a new network in Docker ref: docker network create --driver bridge geode

Inside the Pulse WAR file at /WEB-INF/classes/pulse.properties I changed the pulse.host=localhost setting to pulse.host=geode. I then re-built my Pulse Docker container with the updated WAR.

Start my two containers (one container for Geode and one for Pulse/Tomcat) both using that network:

docker run -it --network=geode --name geode -p 7070:7070 -p 10334:10334 -p 40404:40404 -p 40405:40405 -p 40406:40406 -p 1099:1099 apachegeode/geode
docker run -d -P --network=geode pulse

And when I now navigate to Pulse in the browser on the host machine, Pulse now connects to the Geode locator.