Skip to content

Bref v3 #257

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 12 commits into
base: main
Choose a base branch
from
Draft

Bref v3 #257

wants to merge 12 commits into from

Conversation

mnapoli
Copy link
Member

@mnapoli mnapoli commented May 24, 2025

This PR will contain all changes for Bref v3.

This PR goes hand-in-hand with brefphp/bref#1953

This will be a long-running PR, I like to keep this open for months so that we have a place to preview and discuss changes. I do not intend to merge this pull request soon.

Layers for v3 are published to a different AWS account than v2, to avoid conflict. That means we can start using v3 layers as soon as these are published (working on it).

Changes:

@mnapoli mnapoli marked this pull request as draft May 24, 2025 20:21
* Refactor to a single layer

* Fix

* Fixes

* Finish merging php.ini files

* Update the PHP 8.2 and 8.3 build scripts too
@mnapoli mnapoli mentioned this pull request May 24, 2025
mnapoli added 8 commits May 25, 2025 16:48
* Optimize layer sizes

The goal is to reduce layer sizes to optimize cold starts (that's the theory at least).

- `strip` debug symbols for all libraries and PHP extensions (saves 11.7%)
- compile PHP with the `-Os` C/CPP flag to optimize the binary for size (saves 8%)
- compile libraries with the `-Os` flag (saves 6.3%)
- disable the `soap` extension by default to avoid loading it on PHP startup (the only big unpopular extension I could find)
- bundle the `pdo-mysql` extension in the PHP binary: it is extra small and will avoid loading it through an external file (small optimization)

In total that's a 24% size reduction, i.e. 14.6MB.

This is for Bref v3, I will run some benchmarks as just measuring the layer size doesn't tell us the full story about cold starts.

* Fix tests
# Conflicts:
#	layers/fpm-dev/Dockerfile
#	php-80/Dockerfile
#	php-81/Dockerfile
# Conflicts:
#	Makefile
#	php-80/Dockerfile
#	php-81/Dockerfile
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.

1 participant