...
1FROM --platform=$BUILDPLATFORM ghcr.io/linkerd/dev:v43-rust-musl as controller
2ARG BUILD_TYPE="release"
3WORKDIR /build
4RUN mkdir -p target/bin
5COPY Cargo.toml Cargo.lock .
6COPY policy-controller policy-controller
7RUN cargo new policy-test --lib
8RUN --mount=type=cache,target=/usr/local/cargo/registry \
9 cargo fetch
10ARG TARGETARCH
11# Enable tokio runtime metrics
12ENV RUSTFLAGS="--cfg tokio_unstable"
13RUN --mount=type=cache,target=target \
14 --mount=type=cache,target=/usr/local/cargo/registry \
15 target=$(case "$TARGETARCH" in \
16 amd64) echo x86_64-unknown-linux-musl ;; \
17 arm64) echo aarch64-unknown-linux-musl ;; \
18 arm) echo armv7-unknown-linux-musleabihf ;; \
19 *) echo "unsupported architecture: $TARGETARCH" >&2; exit 1 ;; \
20 esac) && \
21 just-cargo profile=$BUILD_TYPE target=$target build --package=linkerd-policy-controller && \
22 mv "target/$target/$BUILD_TYPE/linkerd-policy-controller" /tmp/
23
24FROM scratch as runtime
25COPY --from=controller /tmp/linkerd-policy-controller /bin/
26ENTRYPOINT ["/bin/linkerd-policy-controller"]
View as plain text