Skip to content

[Bug] Single node Docker setup does not work on macOS and Windows because of host networking #2951

@bitflicker64

Description

@bitflicker64

Bug Type (问题类型)

others (please edit later)

Before submit

  • 我已经确认现有的 IssuesFAQ 中没有相同 / 重复问题 (I have confirmed and searched that there are no similar problems in the historical issue and documents)

Environment (环境信息)

PR is based on master branch (miscommunication in issue description).
Docker Desktop on macOS and Windows
Deployment method docker compose single node configuration
File docker-compose.yml

Expected & Actual behavior (期望与实际表现)

Expected Behavior

Single node cluster starts normally

Actual Behavior

Server stuck printing Hugegraph server are waiting for storage backend
Server logs show UNAVAILABLE io exception
Store reports {"leaderCount":0,"partitionCount":0}
Cluster never becomes usable even though containers run

Description

The single node Docker setup uses network_mode host. This works only on Linux.
On macOS and Windows, Docker Desktop does not support host networking the same way.
Containers fall back to bridge networking but service configuration still assumes localhost style addresses.

PD and Store advertise gRPC endpoints as 0.0.0.0 or 127.0.0.1.
These are bind addresses, not reachable service addresses inside Docker networking.
Other containers cannot connect, causing PD client failures and preventing partition creation.

Root Cause

network_mode host is Linux only
Docker Desktop ignores or emulates it differently
Services advertise non routable addresses
Server fails to communicate with PD

Fix

Switch to bridge networking and container hostnames.

docker-compose.yml

Remove network_mode host
Use default bridge network
Add environment override hugegraph.pd.peers=pd:8686

docker/pd-conf/application.yml

grpc.host set to pd
raft.address set to pd:8610
raft.peers-list set to pd:8610
initial-store-list set to store:8500

docker/store-conf/application.yml

grpc.host set to store
raft.address set to store:8510
pdserver.address=pd:8686

Why This Works

Bridge networking is cross platform
Docker resolves container names automatically
Services advertise reachable addresses

Result After Fix

PD reachable via pd:8686
Store registers as store:8500
Partitions created normally
Server reachable on localhost 8080

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpdPD modulestoreStore module

    Type

    No type

    Projects

    Status

    In progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions