1de02f731b
## Issue Addressed #4827 ## Proposed Changes This PR introduces a new build-arg to the Lighthouse Dockerfile: `CARGO_USE_GIT_CLI`. This arg will be passed into the `CARGO_NET_GIT_FETCH_WITH_CLI` [environment variable](https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli), which instructs `cargo` to use the git CLI during `fetch` operations instead of the git library. Doing so works around [a bug](https://github.com/rust-lang/cargo/issues/10583) with the git library that causes it to go OOM during `fetch` operations on `arm64` platforms. The default value is `false` so this doesn't affect Lighthouse builds or the CI pipeline. Running a build with `--build-arg CARGO_USE_GIT_CLI=true` will activate it, which is necessary to cross-compile the `arm64` binary when not using `cross` (i.e., when building via the Dockerfile instead of natively if you don't have a rust environment ready to go). Special thanks to @michaelsproul for helping me repro the initial problem. Co-authored-by: Michael Sproul <micsproul@gmail.com>
18 lines
593 B
Docker
18 lines
593 B
Docker
FROM rust:1.69.0-bullseye AS builder
|
|
RUN apt-get update && apt-get -y upgrade && apt-get install -y cmake libclang-dev
|
|
COPY . lighthouse
|
|
ARG FEATURES
|
|
ARG PROFILE=release
|
|
ARG CARGO_USE_GIT_CLI=true
|
|
ENV FEATURES $FEATURES
|
|
ENV PROFILE $PROFILE
|
|
ENV CARGO_NET_GIT_FETCH_WITH_CLI=$CARGO_USE_GIT_CLI
|
|
RUN cd lighthouse && make
|
|
|
|
FROM ubuntu:22.04
|
|
RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-recommends \
|
|
libssl-dev \
|
|
ca-certificates \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY --from=builder /usr/local/cargo/bin/lighthouse /usr/local/bin/lighthouse |