Skip to content

run-thirdparties-docker.sh fails on modern Linux due to predictable network interface names #3196

@xuchenhao

Description

@xuchenhao

Path

/community/developer-guide/regression-testing

Description

I followed the steps in chapter E2E Test with External Data Sources to set up external data sources using Docker Compose, but the final Docker environment failed to start.

Root Cause

The failure occurs in script run-thirdparties-docker.sh due to incompatible network interface detection. The script uses the following command to obtain the network interface name:
eth_name=$(ifconfig -a | grep -E "^eth[0-9]" | sort -k1.4n | awk -F ':' '{print $1}' | head -n 1)
This command assumes network interfaces follow the traditional naming pattern (e.g., eth0, eth1). However, on modern Linux systems using systemd/udev, interfaces typically have predictable network interface names such as enp3s0, ens33, eno1, which the script does not recognize.

Suggested solution

Add the following note to the Preparation section:
EN: Before starting the containers, verify whether the primary network interface name follows theeth[0-9] pattern. If not, manually specify eth_name in script run-thirdparties-docker.sh.
CN: 启动容器前,确认网卡名是否符合 eth[0-9] 的命名模式。若不符合,请在 run-thirdparties-docker.sh 脚本中手动指定 eth_name 变量。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions