You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求适用于DPDK TestPMD与Pktgen的最新Dockerfile

解决DPDK TestPMD Docker镜像构建失败问题(适配22.11+版本)

问题根源

你使用的旧Dockerfile依赖DPDK传统Makefile构建体系和config/common_linux配置文件,但从DPDK 20.11版本开始,官方已全面切换到Meson + Ninja构建系统,原有的config/目录通用配置文件结构被移除,导致sed命令找不到目标文件而失败。

适配DPDK 22.11+的TestPMD Dockerfile

FROM ubuntu:jammy-20240424

# 安装构建依赖和基础工具
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential meson ninja-build pkg-config \
    libnuma-dev libpcap-dev wget ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# 定义DPDK版本和路径
ENV DPDK_VER=22.11
ENV DPDK_DIR=/usr/src/dpdk-${DPDK_VER}
ENV DPDK_BUILD_DIR=${DPDK_DIR}/build

WORKDIR /usr/src/

# 下载并解压DPDK源码
RUN wget -q https://fast.dpdk.org/rel/dpdk-${DPDK_VER}.tar.xz \
    && tar -xf dpdk-${DPDK_VER}.tar.xz \
    && rm dpdk-${DPDK_VER}.tar.xz

# 使用Meson配置DPDK编译选项
# 禁用KNI、IGB_UIO,启用MLX5 PMD,适配容器环境
WORKDIR ${DPDK_BUILD_DIR}
RUN meson setup .. \
    -Ddisable_drivers=net/kni \
    -Denable_drivers=net/mlx5 \
    -Dlibdir=lib/x86_64-linux-gnu \
    -Dprefix=/usr/local

# 编译并安装DPDK
RUN ninja && ninja install && ldconfig

# 编译并安装TestPMD
WORKDIR ${DPDK_DIR}/app/test-pmd
RUN meson setup build .. \
    && ninja -C build \
    && cp build/testpmd /usr/bin/testpmd

# 设置默认命令,启动TestPMD时显示帮助
CMD ["testpmd", "--help"]

关键修改说明

  • 构建系统切换:用Meson和Ninja替代传统Makefile,这是DPDK 20.11+的官方推荐方式
  • 配置方式变更:通过Meson参数-Ddisable_drivers/-Denable_drivers替代原sed修改配置文件的方式,更直观且兼容新版本
  • 依赖更新:新增meson、ninja-build等构建工具,移除旧的无用依赖
  • 镜像优化:使用固定版本Ubuntu镜像避免版本波动,添加--no-install-recommends和清理apt缓存减小镜像体积

K8s部署额外指引

  • 大页配置:K8s集群需提前配置HugePages,Pod需申请大页资源(resources.limits.hugepages-2Mi)
  • 设备挂载:将宿主机的DPDK兼容网卡(如MLX5)通过hostPath或DevicePlugin挂载到Pod内
  • 权限设置:Pod需以特权模式运行(securityContext.privileged: true),或添加必要Linux能力(如IPC_LOCK、NET_ADMIN)
  • 环境变量:在Pod中设置RTE_SDK和RTE_TARGET,或直接使用默认安装路径/usr/local

内容的提问来源于stack exchange,提问作者bala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:40:42