@@ -220,16 +220,20 @@ ipfs-start test_dir: _check-docker
220220 # Pull latest kubo image if not present
221221 docker pull ipfs/ kubo:latest
222222
223- # Use bridge network mode
224- NETWORK_ARGS=" -p 4001:4001 -p 8080:8080 -p 5001:5001"
223+ # Determine network mode based on OS
224+ if [[ " $OSTYPE" == " darwin" * ]]; then
225+ # macOS - use bridge with port mapping
226+ NETWORK_ARGS=" -p 4001:4001 -p 8080:8080 -p 5001:5001"
227+ else
228+ # Linux (including CI) - use host networking so container can reach localhost services
229+ NETWORK_ARGS=" --network host"
230+ fi
225231
226232 # Start Docker container
227233 docker run -d --name ipfs-node -v ipfs-data:/ data/ ipfs $NETWORK_ARGS ipfs/ kubo:latest
228- echo " Container: ipfs-node"
229- echo " NETWORK_ARGS: $NETWORK_ARGS"
234+ echo " Container: ipfs-node (network: $NETWORK_ARGS)"
230235 echo " Waiting for container to start..."
231236 sleep 5
232- docker inspect ipfs-node --format ' {{{{.HostConfig.NetworkMode}}}}'
233237 docker exec ipfs-node ipfs --version
234238
235239 # Bitswap logging
@@ -249,13 +253,13 @@ ipfs-connect runtime:
249253
250254 # Detect the correct host and protocol for Docker
251255 if [[ " $OSTYPE" == " darwin" * ]]; then
252- # macOS - use dns4/host.docker.internal
256+ # macOS - use dns4/host.docker.internal (bridge network)
253257 PROTOCOL=" dns4"
254258 DOCKER_HOST=" host.docker.internal"
255259 else
256- # Linux (with bridge networking) - use ip4/172.17 .0.1
260+ # Linux - use ip4/127.0 .0.1 (host network mode)
257261 PROTOCOL=" ip4"
258- DOCKER_HOST=" 172.17 .0.1"
262+ DOCKER_HOST=" 127.0 .0.1"
259263 fi
260264
261265 echo " Using Docker host: /$PROTOCOL/$DOCKER_HOST"
@@ -298,9 +302,9 @@ ipfs-reconnect-start test_dir runtime:
298302 cd " $ROOT_DIR"
299303 # TODO: improve this for multiple runtimes
300304 if [ " {{ runtime }} " = " bulletin-westend-runtime" ]; then
301- ./ scripts/ ipfs-reconnect-westend.sh docker > {{ test_dir }} / ipfs-reconnect.log 2 >&1 &
305+ ./ scripts/ ipfs-reconnect-westend.sh docker 10 > {{ test_dir }} / ipfs-reconnect.log 2 >&1 &
302306 elif [ " {{ runtime }} " = " bulletin-polkadot-runtime" ]; then
303- ./ scripts/ ipfs-reconnect-solo.sh docker > {{ test_dir }} / ipfs-reconnect.log 2 >&1 &
307+ ./ scripts/ ipfs-reconnect-solo.sh docker 10 > {{ test_dir }} / ipfs-reconnect.log 2 >&1 &
304308 else
305309 echo " 🐳 Unhandled runtime: {{ runtime }} specified!"
306310 exit 1
0 commit comments