1
0

Dockerfile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. FROM --platform=$BUILDPLATFORM rust:1.61.0-buster AS build
  2. ARG TARGETARCH
  3. RUN apt-get update && apt-get install -y build-essential curl musl-tools upx pkg-config libssl-dev
  4. WORKDIR /root/good-mitm
  5. ADD . .
  6. RUN rustup install nightly && rustup default nightly && \
  7. case "$TARGETARCH" in \
  8. "amd64") \
  9. RUST_TARGET="x86_64-unknown-linux-musl" \
  10. MUSL="x86_64-linux-musl" \
  11. ;; \
  12. "arm64") \
  13. RUST_TARGET="aarch64-unknown-linux-musl" \
  14. MUSL="aarch64-linux-musl" \
  15. ;; \
  16. *) \
  17. echo "Doesn't support $TARGETARCH architecture" \
  18. exit 1 \
  19. ;; \
  20. esac && \
  21. wget -qO- "https://musl.cc/$MUSL-cross.tgz" | tar -xzC /root/ && \
  22. CC=/root/$MUSL-cross/bin/$MUSL-gcc && \
  23. rustup target add $RUST_TARGET && \
  24. PKG_CONFIG_ALLOW_CROSS=1 RUSTFLAGS="-C linker=$CC" CC=$CC cargo build --target "$RUST_TARGET" --release && \
  25. mv target/$RUST_TARGET/release/good-mitm target/release/ && \
  26. upx -9 target/release/good-mitm
  27. FROM alpine:3.14 AS good-mitm
  28. COPY --from=build /root/good-mitm/target/release/good-mitm /usr/bin
  29. ENTRYPOINT [ "good-mitm" ]