Added --platform=$BUILDPLATFORM to composer-deps and assets stages to ensure they run on the native build platform (amd64) instead of being built separately for each target architecture (amd64, arm64, arm/v7).
This is the critical change that makes the optimization work:
- Without this flag, Docker Buildx builds these stages for each target platform
- With this flag, stages run once on native platform and results are copied to all targets
- Eliminates ARM emulation overhead for CPU-intensive asset compilation
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
Refactored to copy the entire project directory in composer-deps and assets stages instead of cherry-picking specific files. This:
- Eliminates the separate translations stage
- Avoids missing file issues
- Simplifies the build process
- Maintains performance benefit of building assets once on native platform
Both stages now use COPY . . to get all project files, avoiding the complexity of tracking which files are needed.
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
Symfony console requires .env file to bootstrap. Added COPY .env to translations stage so cache:warmup can run successfully.
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
Git is required by composer when installing packages from source. This dependency was exposed by the multi-stage build changes where composer-deps stage uses --no-scripts and the final stage needs to complete the installation.
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
The assets are copied while running as www-data user, so the --chown flag is redundant. This makes it consistent with the frankenphp version.
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
- Add multi-stage build with separate composer-deps and assets stages
- Assets are built once on native platform (node:22-bookworm-slim)
- Pre-built assets copied into final images for all platforms
- Remove Node.js/Yarn installation from final images (smaller size)
- Use --ignore-platform-reqs for composer in assets stage
- Applies to both Dockerfile and Dockerfile-frankenphp
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Initial plan
* Add COMPOSER_EXTRA_PACKAGES environment variable support for Docker containers
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Add shellcheck disable comment for intentional word splitting
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Add documentation for installing mailer packages in email.md
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Add --no-dev flag to composer require to prevent dev packages installation
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Use --no-install with require and run separate install command
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Initial plan
* Initial plan for replacing entity type names with placeholders
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Replace entity type names with synonym placeholders in English translations
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Add more synonym placeholders for storage location, project, and part patterns
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Update tree navigation labels with synonym placeholders
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Fix remaining entity type placeholders identified in code review
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Fix placeholder syntax: use [Type]/[[Type]] instead of {type}/{{type}} and add German translations
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Fix German translation to avoid awkward word concatenation with placeholder
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Use capitalized placeholders in German translations (nouns are always capitalized in German)
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Fixed length menu for datatable views
* Capitalize placeholders at the beginning of sentences/titles in English translations
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Ensure that synonym placeholders get cached on a per locale level
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
* Initial plan
* Replace placeholder syntax for type synonyms to be more DX friendly
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Update translation files to use new placeholder syntax
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Use mb_strtoupper with mb_substr for Unicode consistency
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Make placeholder generation right
* Removed obsolete transltions
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
* Initial plan
* Improve documentation clarity, fix typos, and update outdated information
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Replace LCSC with Mouser in cloud providers list per d-buchmann's review
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
* Remove outdated Mouser API issue notice
Removed outdated information about the Mouser API's current issues with datasheets and part specifications.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
* Initial plan
* Fix spelling and grammar mistakes in German and English translations
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>