mirror of https://github.com/linkerd/linkerd2.git
39 lines
1.2 KiB
Docker
39 lines
1.2 KiB
Docker
ARG BUILDPLATFORM=linux/amd64
|
|
|
|
# Precompile key slow-to-build dependencies
|
|
FROM --platform=$BUILDPLATFORM golang:1.14.2-alpine as go-deps
|
|
WORKDIR /linkerd-build
|
|
COPY go.mod go.sum ./
|
|
COPY bin/install-deps bin/
|
|
RUN go mod download
|
|
ARG TARGETARCH
|
|
RUN ./bin/install-deps $TARGETARCH
|
|
|
|
## compile cni-plugin utility
|
|
FROM go-deps as golang
|
|
WORKDIR /linkerd-build
|
|
COPY pkg pkg
|
|
COPY controller controller
|
|
COPY cni-plugin cni-plugin
|
|
ARG TARGETARCH
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=$TARGETARCH go build -o /go/bin/linkerd-cni -v -mod=readonly ./cni-plugin/
|
|
|
|
FROM debian:buster-20201117-slim
|
|
WORKDIR /linkerd
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
iptables \
|
|
jq && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# We still rely on old iptables-legacy syntax.
|
|
RUN update-alternatives --set iptables /usr/sbin/iptables-legacy \
|
|
&& update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
|
|
|
|
COPY --from=golang /go/bin/linkerd-cni /opt/cni/bin/
|
|
COPY LICENSE .
|
|
COPY cni-plugin/deployment/scripts/install-cni.sh .
|
|
COPY cni-plugin/deployment/linkerd-cni.conf.default .
|
|
COPY cni-plugin/deployment/scripts/filter.jq .
|
|
ENV PATH=/linkerd:/opt/cni/bin:$PATH
|
|
CMD ["install-cni.sh"]
|