mirror of https://github.com/linkerd/linkerd2.git
28 lines
1.1 KiB
Docker
28 lines
1.1 KiB
Docker
FROM --platform=$BUILDPLATFORM ghcr.io/linkerd/dev:v45-rust-musl AS controller
|
|
ARG BUILD_TYPE="release"
|
|
WORKDIR /build
|
|
RUN mkdir -p target/bin
|
|
COPY Cargo.toml Cargo.lock .
|
|
COPY policy-controller policy-controller
|
|
RUN cargo new policy-test --lib
|
|
RUN --mount=type=cache,target=/usr/local/cargo/registry \
|
|
cargo fetch
|
|
ARG TARGETARCH
|
|
# Enable tokio runtime metrics
|
|
ENV RUSTFLAGS="--cfg tokio_unstable"
|
|
RUN --mount=type=cache,target=target \
|
|
--mount=type=cache,target=/usr/local/cargo/registry \
|
|
target=$(case "$TARGETARCH" in \
|
|
amd64) echo x86_64-unknown-linux-musl ;; \
|
|
arm64) echo aarch64-unknown-linux-musl ;; \
|
|
arm) echo armv7-unknown-linux-musleabihf ;; \
|
|
*) echo "unsupported architecture: $TARGETARCH" >&2; exit 1 ;; \
|
|
esac) && \
|
|
just-cargo profile=$BUILD_TYPE target=$target build --package=linkerd-policy-controller && \
|
|
mv "target/$target/$BUILD_TYPE/linkerd-policy-controller" /tmp/
|
|
|
|
FROM scratch AS runtime
|
|
LABEL org.opencontainers.image.source=https://github.com/linkerd/linkerd2
|
|
COPY --from=controller /tmp/linkerd-policy-controller /bin/
|
|
ENTRYPOINT ["/bin/linkerd-policy-controller"]
|