From c8db75c1dc18398bc9c80042c1fd6ff29856e3d4 Mon Sep 17 00:00:00 2001 From: Timofey Klimov Date: Tue, 14 Jan 2025 11:39:27 +0300 Subject: [PATCH] Add Dockerfile for eupf on arm64/aarch64 --- Dockerfile.arm64 | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Dockerfile.arm64 diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 new file mode 100644 index 00000000..95d36053 --- /dev/null +++ b/Dockerfile.arm64 @@ -0,0 +1,39 @@ +FROM golang:1.22.7-bullseye AS builder + +WORKDIR /app + +# Install dependencies for ebpf compilation +RUN apt update \ + && apt install --no-install-recommends -y clang llvm gcc libbpf-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get install -y linux-headers-arm64 + +RUN ln -s /usr/include/aarch64-linux-gnu/asm/ /usr/include/asm \ + && ln -s /usr/include/aarch64-linux-gnu/sys/ /usr/include/sys \ + && ln -s /usr/include/aarch64-linux-gnu/bits/ /usr/include/bits \ + && ln -s /usr/include/aarch64-linux-gnu/gnu/ /usr/include/gnu + +RUN go install github.com/swaggo/swag/cmd/swag@v1.8.12 + +COPY go.mod go.sum ./ +COPY cmd cmd + +ARG BPF_ENABLE_LOG "0" +ARG BPF_ENABLE_ROUTE_CACHE "0" +RUN BPF_CFLAGS="" \ + && if [ "$BPF_ENABLE_LOG" = "1" ]; then BPF_CFLAGS="$BPF_CFLAGS -DENABLE_LOG"; fi \ + && if [ "$BPF_ENABLE_ROUTE_CACHE" = "1" ]; then BPF_CFLAGS="$BPF_CFLAGS -DENABLE_ROUTE_CACHE"; fi \ + && BPF_CFLAGS=$BPF_CFLAGS go generate -v ./cmd/... +RUN CGO_ENABLED=0 go build -v -o bin/eupf ./cmd/ + +FROM alpine:3.18.5 AS runtime +LABEL org.opencontainers.image.source="https://github.com/edgecomllc/eupf" + +COPY --from=builder /app/bin/ /app/bin/ +COPY --from=builder /app/cmd/docs/swagger.* /app/ +COPY --from=builder /app/cmd/ebpf/zeroentrypoint_bpf.o /app/ +COPY ./entrypoint.sh /app/bin/entrypoint.sh + +# CMD is overridden if arguments are passed. +ENTRYPOINT [ "sh", "/app/bin/entrypoint.sh" ]