Fix docker build OOMing in CI for arm64 builds (#14173)
Co-authored-by: David Robertson <davidr@element.io>
3 files changed, 11 insertions, 1 deletions
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index b3793e5c1f..b20048ff54 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -27,7 +27,7 @@ jobs:
- name: Inspect builder
run: docker buildx inspect
-
+
- name: Log in to DockerHub
uses: docker/login-action@v2
with:
@@ -55,3 +55,6 @@ jobs:
tags: "${{ steps.set-tag.outputs.tags }}"
file: "docker/Dockerfile"
platforms: linux/amd64,linux/arm64
+ build-args:
+ # arm64 builds OOM otherwise. c.f. https://github.com/rust-lang/cargo/issues/10583
+ CARGO_NET_GIT_FETCH_WITH_CLI: true
diff --git a/changelog.d/14173.docker b/changelog.d/14173.docker
new file mode 100644
index 0000000000..5ad113f435
--- /dev/null
+++ b/changelog.d/14173.docker
@@ -0,0 +1 @@
+Fix docker build OOMing in CI for arm64 builds.
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 8be49681b4..62f0a9bf93 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -108,6 +108,12 @@ RUN mkdir /rust /cargo
RUN curl -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --default-toolchain stable
+
+# arm64 builds consume a lot of memory if `CARGO_NET_GIT_FETCH_WITH_CLI` is not
+# set to true, so we expose it as a build-arg.
+ARG CARGO_NET_GIT_FETCH_WITH_CLI=false
+ENV CARGO_NET_GIT_FETCH_WITH_CLI=$CARGO_NET_GIT_FETCH_WITH_CLI
+
# To speed up rebuilds, install all of the dependencies before we copy over
# the whole synapse project, so that this layer in the Docker cache can be
# used while you develop on the source
|