The common problem with containers not communicating with each other over a user bridge network (typical when using docker compose) is that upon creating the bridge, Docker constructs the interface but does not add it to the Docker zone in the fw4 firewall. The solution was to find the bridge interface id (eg. br-a7cece5acbfe) then add it to the Docker firewall zone, either through Luci or via uci from the command line, then restart the firewall.
Through Luci, the steps are:
Go to Network->Firewall
Zones->docker , click Edit
Advanced Settings tab, add/select the device id under "Covered Devices" - > Save
Save & Apply.
UCI through the command line:
brctl show
uci add_list firewall.docker.device=bridge_interface_id_here
uci commit firewall
service firewall reload
where bridge_interface_id_here = the docker interface id (eg br-a7cece5acbfe )
if the Docker bridge network is removed, it should also be cleared from the firewall zone with
uci del_list firewall.docker.device=bridge_interface_id_here
uci commit firewall
service firewall reload