Skip to content

Combine C/Rust compile into one cached Docker image - #105

Closed
nathan-probert wants to merge 1 commit into
mainfrom
ci/single-docker-build-image
Closed

Combine C/Rust compile into one cached Docker image#105
nathan-probert wants to merge 1 commit into
mainfrom
ci/single-docker-build-image

Conversation

@nathan-probert

@nathan-probert nathan-probert commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Builds both native extensions in a single manylinux_2_28 container so the compiler toolchain is installed once and cached, replacing the two separate amazonlinux (C) + manylinux (Rust) containers.

  • New build_scripts/Dockerfile: gcc/make + pinned Rust 1.85 on manylinux_2_28 (glibc-2.28 baseline, Lambda-safe artifacts).
  • New build_scripts/build.sh: one container compiles C (make compile_c) and Rust (cargo build --target x86_64-unknown-linux-gnu); builds the image on first local use.
  • Removed build_scripts/compile.sh and build_scripts/rust_compile.sh; deploy.sh now calls build.sh.
  • setup job: builds the image with Docker BuildKit (cache-from/to: type=gha, docker-container driver) so the toolchain only installs once per cache lifetime. Artifact layout and downstream test/deploy reuse are unchanged.

@nathan-probert

Copy link
Copy Markdown
Owner Author

Closing per discussion: the deploy speedup (19m -> ~1m) came from #104's artifact reuse. This PR adds complexity (Docker image + cache) with no CI-time benefit and a slower cold setup, and the toolchain-consistency/glibc benefits aren't needed right now. Can reopen later if desired.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant