FROM ubuntu:22.04 ENV DEBIAN_FRONTEND=noninteractive WORKDIR /src RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ gnupg \ lsb-release \ && rm -rf /var/lib/apt/lists/* # Add FD.io release repo (Jammy / arm64 packages exist for v26.02) RUN set -eux; \ mkdir -p /etc/apt/keyrings; \ curl -fsSL https://packagecloud.io/fdio/release/gpgkey \ | gpg --dearmor -o /etc/apt/keyrings/fdio-release.gpg; \ echo "deb [signed-by=/etc/apt/keyrings/fdio-release.gpg] https://packagecloud.io/fdio/release/ubuntu/ jammy main" \ > /etc/apt/sources.list.d/fdio-release.list; \ apt-get update; \ apt-get install -y --no-install-recommends \ vpp=26.02-release \ vpp-plugin-core=26.02-release \ vpp-plugin-dpdk=26.02-release; \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /etc/vpp /run/vpp RUN cat > /etc/vpp/startup.conf <<'EOF' unix { nodaemon cli-listen /run/vpp/cli.sock log /dev/stderr full-coredump } api-trace { on } cpu { main-core 0 } plugins { plugin default { disable } plugin dpdk_plugin.so { enable } } dpdk { no-pci dev dpaa_bus:fm1-mac9 dev dpaa_bus:fm1-mac10 } EOF RUN cat > /usr/local/bin/docker-entrypoint.sh <<'EOF' #!/bin/sh set -eu mkdir -p /run/vpp echo "=== device check ===" ls -l /dev/fsl-usdpaa /dev/fsl-usdpaa-irq 2>/dev/null || true echo "=== sysfs check ===" ls -l /sys/class/net 2>/dev/null || true exec /usr/bin/vpp -c /etc/vpp/startup.conf "$@" EOF RUN chmod +x /usr/local/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]