First public release.
·
2 commits
to main
since this release
- Interactive
make configureinitializer with a curated compatibility matrix
for Magento Open Source 2.4.6 / 2.4.7 / 2.4.8 / 2.4.9 and MageOS
2.3.0 / 2.2.2 / 2.2.1 / 2.2.0 / 2.1.0 / 2.0.0 — only valid PHP / database /
OpenSearch combinations are offered for each release. The MageOS line
tracks the official compatibility matrix at
https://mage-os.org/get-started/system-requirements/: PHP 8.2–8.4
(recommended 8.4 for 2.3.0, 8.3 for older 2.x), MariaDB 10.6 / 10.11 / 11.4,
MySQL 8.0 / 8.4, OpenSearch 2.12 / 2.19 / 3.0 (2.3.0 is the rebuild of the
Magento 2.4.8-p5 codebase and is the final 2.x release before MageOS 3.0;
2.2.x rebuilds 2.4.8; 2.0 / 2.1 track 2.4.8-p3). For MageOS 2.2.x and 2.3.0
the interactive flow surfaces an extra hint that OpenSearch 3 is the
preferred engine for new installations.
Magento 2.4.9 tightens supported versions significantly: PHP 8.4 / 8.5 only
(PHP 8.3 is upgrade-only and not offered for fresh installs), MariaDB 11.4
only, MySQL 8.4 only, and OpenSearch 3.x recommended (OpenSearch 2.19 kept
as a migration path). - Redis and Varnish image tags are auto-selected per Magento / MageOS release
from the same compatibility matrix that drives PHP / DB / OpenSearch — no
extra prompt. The matrix follows Adobe's and MageOS's published system
requirements: Magento 2.4.6 → Redis 7.0 / Varnish 7.1, 2.4.7 → 7.2 / 7.4,
2.4.8 → 7.4 / 7.6, 2.4.9 → 7.4 / 7.7; MageOS 2.0 / 2.1 → 7.4 / 7.6,
MageOS 2.2.x and 2.3.0 → 7.4 / 7.7. The selected tags are written into.envas
REDIS_VERSION/VARNISH_VERSIONso they can be overridden by hand if
needed. - Pinned remaining service versions to match the MageOS recommended baseline:
nginx 1.28, Composer 2.9. The Redis service block in the generated
compose.yamlcarries a comment pointing atvalkey/valkey:8-alpineas a
drop-in replacement for Redis. - PHP-FPM image bundles the
redisPECL extension (phpredis). Magento can
use Predis as a pure-PHP fallback but the C extension is significantly
faster and matches what production stacks usually run. - Non-interactive mode for
make configureviaFILE=path/to/answers.env
(orCONFIG_FILE=…env var). Validates all keys against the compatibility
matrix before writing.env, so misconfigured fixtures fail fast. - OpenSearch version selectable per Magento release (e.g. 2.4.8 → 2.12 / 2.19 / 3.0).
Images come from the officialopensearchproject/opensearchDocker Hub
registry; theanalysis-icuandanalysis-phoneticplugins required by
Magento are installed automatically on first start via theOPENSEARCH_PLUGINS
env var. The container ships withstop_grace_period: 5ssomake stop
is snappy when frequently switching between projects. - Auto-detection of the host OS — static container IPs on Linux,
service-name DNS +host.docker.internalon macOS / Windows / WSL2. - Auto-detection of free
10.10.X.0/24subnets on Linux. The third octet
varies between projects; the last octet is fixed by service (db =.2,
php-fpm =.5, varnish =.10, …) so muscle memory is preserved. make sethostip— writes the running container's IP into/etc/hosts
and replaces stale entries on re-runs.make setdomain DOMAIN=…— updates.envand re-renderscompose.yaml
in place.make check-images— queries Docker Hub for available OpenSearch tags.
Useful when extending the compatibility matrix as new versions land.- Optional Varnish 7 service with Magento 2 VCL, automatically rewiring the
nginx vhost between "direct" and "Varnish-fronted" modes. The vhost uses
Docker's embedded resolver (127.0.0.11) and a variable inproxy_pass,
so the upstream is resolved lazily on first request — nginx no longer
crashes when Varnish isn't yet registered in Docker DNS at boot. - Optional Node.js 22 service with Vite HMR port exposed.
- PHP-FPM image with Composer 2, n98-magerun2, Xdebug 3 (zero-config),
ImageMagick, MailHog handler, sudoers forwww-data, persistent
.bash_historymounted live. - Magento workflow targets:
make install,make import-db [FILE=path],
make composer-install,make compile,make reindex,make cache-flush,
make static-deploy. - DB tooling:
make db-export,make db-cli,make redis-flush. - Container lifecycle parity with the original
projectscript:
init,up,start,stop,restart,kill,rebuild. Theinit/
up/start/rebuildtargets depend onensure-volumes, which
idempotently creates the sharedmagento-composer-cacheexternal Docker
volume so the Composer download cache survives across projects and across
make kill. (External volumes are not touched bydocker compose down -v.) make xdebug-on/make xdebug-off/make xdebug-status— toggle
Xdebug at runtime by re-registering or unloading thezend_extension
(not just flippingxdebug.mode), so there is zero engine instrumentation
overhead when off. State is per-running-container and resets on
make rebuild/ container recreation.- PHP-FPM extension list adapts to the PHP version chosen by the
configurator:pspellis skipped on PHP 8.4+ (removed from PHP core),
andopcacheis skipped on PHP 8.5+ (statically built into the binary).
This makes Magento 2.4.9 / PHP 8.5 builds work out of the box. .shellcheckrcwith per-rule justifications (nameref false positives,
intentional word-splitting inparse_kv, dynamicsourceof
CONFIG_FILE/ENV_FILE,envsubstsingle-quote idiom) so the CI
shell-lintjob is deterministic and new shell scripts inherit full
strictness.tests/smoke.sh— fast and full smoke tests covering minimal, full-stack
(Varnish + Node), MageOS, and Magento 2.4.9 configurations. Wrapped by
make testandmake test-full.- GitHub Actions workflow (
smoke-test) — runs fast smoke + shellcheck on
every push and PR; full smoke on pushes tomain. docs/INSTALL.md— step-by-step walkthroughs of the three setup scenarios
(fresh Magento, fresh MageOS, clone existing project). Fresh installs use
composer create-project … .(current directory) so the codebase lands
straight in/var/www/htmlwith no folder-flattening step. Includes a
note on the Magento Marketplaceauth.jsonworkflow: after
composer create-projectsaves credentials to/var/www/.composer/auth.json,
copy them into the project root (cp ../.composer/auth.json .) so
subsequentcomposer require/composer updateruns don't re-prompt.CLAUDE.md— guidance for AI coding agents (Claude Code, etc.) on helping
users with the stack — diagnostic order, destructive-command warnings,
common requests.
Full Changelog: https://github.com/magentofullstackdev/magento-docker-bootstrap/commits/v1.0.0