The best way to run the Eventuate example applications is using Docker Compose.
Each application comes with a docker-compose.yml
file that runs the services.
Also, if you are using Eventuate Local there is a docker-compose-eventuate-local.yml
file that runs the application services and the Eventuate Local infrastructure services: MySQL, Kafka and the CDC service.
In order to correctly configure Eventuate Local, you must set the OS environment variable DOCKER_HOST_IP
.
This variable sets the advertised listener of the Kafka container.
It must be an IP address (or a DNS name) that is accessible from both Docker containers and, if you want to do development, from applications running on the host.
Unfortunately, because of version/platform-specific variations in how Docker works, setting this variable is a little tricky.
Docker version | Set DOCKER_HOST_IP to |
|
---|---|---|
Docker ToolBox/VirtualBox-based Docker | IP address of VM | |
Docker for Windows (native) | IP address of PC | |
Docker for Mac (native) | See below | |
Other platforms/versions | Host name/ IP address of machine |
Docker for Mac is particularly problematic because of networking limitations. The solution is as follows:
sudo ifconfig lo0 alias 10.200.10.1/24 # (where 10.200.10.1 is some unused IP address)
export DOCKER_HOST_IP=10.200.10.1
See Docker for Mac networking for more details.
Please run our Docker Networking Diagnostics utility.
If you run into problems and need more help please don’t hesitate to contact us.