Skip to content

Conversation

@defunctl
Copy link
Contributor

@defunctl defunctl commented Nov 4, 2025

Main Changes

The last 2.1.1 build still took 30 minutes because most of it was uncached, these changes improve the caching but also significantly improve the build speeds for arm64: From 30m to 4m19s uncached!

Note

Thank you @borkweb for getting the ubuntu-24.04-arm runner enabled in our org!


  • Change - GitHub Actions workflows now use native ARM64 runners (ubuntu-24.04-arm) instead of QEMU emulation for multi-platform builds, to reduce build times.
  • Change - Optimized Dockerfile layer ordering to improve cache hit rates - local config files moved to end to prevent invalidating heavy system installation layers.
  • Change - Added BuildKit cache mounts for apt package installation and PHP extension compilation, to reduce subsequent build times.
  • Change - Added IPE_CACHE_DIR environment variable to cache PHP extension downloads and compiled artifacts across builds.
  • Change - Implemented platform-specific registry caching (separate caches for amd64/arm64) to prevent cache conflicts and maximize reuse.

Here are some runs with these updates with maximum caching:

  1. slic-wordpress-php - 1m 1s
  2. slic-php - 59s

Here are the uncached arm64 builds:

  1. slic-wordpress-php - 1m 55s
  2. slic-php - 4m 19s

@defunctl defunctl self-assigned this Nov 4, 2025
@defunctl defunctl requested review from borkweb and lucatume November 4, 2025 21:02
@defunctl defunctl added this to the 2.1.2 milestone Nov 4, 2025
@defunctl
Copy link
Contributor Author

defunctl commented Nov 4, 2025

@lucatume please give the arm64 images one more test when you get a chance.

@defunctl defunctl marked this pull request as ready for review November 4, 2025 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants