aboutsummaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile40
1 files changed, 40 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..d83f491
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,40 @@
+ARG VPP_VERSION=v21.06
+ARG UBUNTU_VERSION=20.04
+
+FROM ubuntu:${UBUNTU_VERSION} as vppbuild
+ARG VPP_VERSION
+RUN apt-get update
+RUN DEBIAN_FRONTEND=noninteractive TZ=US/Central apt-get install -y git make python3 sudo asciidoc
+RUN git clone https://github.com/FDio/vpp.git
+WORKDIR /vpp
+RUN git checkout ${VPP_VERSION}
+#COPY patch/ patch/
+#RUN test -x "patch/patch.sh" && ./patch/patch.sh || exit 1
+RUN DEBIAN_FRONTEND=noninteractive TZ=US/Central UNATTENDED=y make install-dep
+RUN make pkg-deb
+RUN ./src/scripts/version > /vpp/VPP_VERSION
+
+FROM vppbuild as vppinstall
+#COPY --from=vppbuild /var/lib/apt/lists/* /var/lib/apt/lists/
+#COPY --from=vppbuild [ "/vpp/build-root/libvppinfra_*_amd64.deb", "/vpp/build-root/vpp_*_amd64.deb", "/vpp/build-root/vpp-plugin-core_*_amd64.deb", "/vpp/build-root/vpp-plugin-dpdk_*_amd64.deb", "/pkg/"]
+#RUN VPP_INSTALL_SKIP_SYSCTL=false apt install -f -y --no-install-recommends /pkg/*.deb ca-certificates iputils-ping iproute2 tcpdump; \
+# rm -rf /var/lib/apt/lists/*; \
+# rm -rf /pkg
+RUN VPP_INSTALL_SKIP_SYSCTL=false apt install -f -y --no-install-recommends /vpp/build-root/*.deb ca-certificates iputils-ping iproute2 tcpdump; \
+ rm -rf /var/lib/apt/lists/*; \
+ rm -rf /pkg
+
+FROM golang:1.17.9-alpine3.15 as binapi-generator
+ENV GO111MODULE=on
+ENV CGO_ENABLED=0
+ENV GOBIN=/bin
+ARG GOVPP_VERSION
+COPY . /govpp
+WORKDIR /govpp
+RUN go build -o /bin/binapi-generator ./cmd/binapi-generator
+
+FROM binapi-generator as gen
+COPY --from=vppinstall /usr/share/vpp/api/ /usr/share/vpp/api/
+COPY --from=vppinstall /vpp/VPP_VERSION /VPP_VERSION
+WORKDIR /gen/binapi
+CMD VPP_VERSION=$(cat /VPP_VERSION) go generate .