Sign inSign up

aheadworks/m24dev-ce

By aheadworks

•Updated 12 days ago

Image
0

10K+

aheadworks/m24dev-ce repository overview

⁠docker-m2dev

Magento 2 development base image. Not for production — PHP-FPM runs as root, SSH is enabled, and multiple services run in one container by design (better CLI ergonomics and bind-mount performance on Windows/macOS).

⁠Images on Docker Hub

EditionRepository
Communityaheadworks/m24dev-ce⁠
Enterpriseaheadworks/m24dev-ee⁠

Tag shape: {magento-version}-{php-version}[-sampledata][-xdebug] (Magento 2.4.4-p2+). PHP versions follow Magento system requirements⁠.

⁠What's inside

Pre-installed Magento (optional sample data), nginx, PHP-FPM, cron, Composer, mhsendmail, and Python entrypoint.

⁠Runtime

On start (update-and-serve): wait for MySQL → verify schema → import baked dump if needed → apply config → serve HTTP and SSH.

Environment variables read by entrypoint.py (pass with -e or Compose environment):

VariableDefaultPurpose
MYSQL_HOST—MySQL hostname (required)
MYSQL_PORT3306MySQL port
MYSQL_USER—MySQL user (required)
MYSQL_PASSWORD—MySQL password (required)
MYSQL_DATABASE—Database name (required)
MYSQL_PREFIX""Table prefix; renames tables after dump import
SSH_PASSWORDrandom 12 chars if unsetRoot SSH/SFTP password
DUMP_FILE/var/www/dump.sqlSQL dump imported when DB is empty
MAGENTO_URL—Store base URL
MAGENTO_LANGUAGE—Locale (e.g. en_US)
MAGENTO_DEFAULT_CURRENCY—Default currency
MAGENTO_TIMEZONE—Store timezone
MAGENTO_ADMIN_FIRSTNAME—Admin first name
MAGENTO_ADMIN_LASTNAME—Admin last name
MAGENTO_ADMIN_EMAIL—Admin email
MAGENTO_ADMIN_USERNAME—Admin username
MAGENTO_ADMIN_PASSWORD—Admin password
MAGENTO_SEARCH_ENGINEelasticsearch7Search engine adapter ID
WITH_VARNISH—Set to enable Varnish FPC (http-cache-hosts=cache)
MODULE_LIST—Comma-separated Composer packages (vendor/name) installed on first setup

From the base aheadworks/phpdev image (not entrypoint.py): MAIL_HOST — SMTP host for mhsendmail (PHP sendmail_path).

⁠Example

version: '3.7'
services:
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: myrootpassword
      MYSQL_USER: magento
      MYSQL_PASSWORD: magento
      MYSQL_DATABASE: magento
    volumes:
      - data-db:/var/lib/mysql
  mail:
    image: mailhog/mailhog
    command: ["-smtp-bind-addr", "0.0.0.0:25", "-ui-bind-addr", "0.0.0.0:80", "-api-bind-addr", "0.0.0.0:80"]
    ports: ["1388:80"]
  web:
    image: aheadworks/m24dev-ce:2.4.4-p2-8.1-sampledata
    environment:
      MAIL_HOST: mail
      MAGENTO_URL: http://local.magento:1380
      MYSQL_HOST: db
      MYSQL_USER: magento
      MYSQL_PASSWORD: magento
      MYSQL_DATABASE: magento
      MAGENTO_ADMIN_USERNAME: master
      MAGENTO_ADMIN_PASSWORD: master123
      SSH_PASSWORD: pushkin
    ports: ["1080:80", "1022:22"]
    volumes:
      - data-files:/var/www/html
volumes:
  data-db:
  data-files:

⁠Contributing

Built with Multiplicator⁠: Jinja templates in skeletons/, output in out/, legacy sources in legacy/ (manual builds only).

A push to master generates out/, commits it, then builds and pushes the images in two parallel pipeline steps. builder/⁠ runs with go run and two concurrent builds per step. The image tag is the directory name under out/.

EditionRepositoryComposer authMAGENTO_EDITION
communityaheadworks/m24dev-ce (-ce-repo)COMPOSER_AUTHcommunity
enterpriseaheadworks/m24dev-ee (-ee-repo)COMPOSER_AUTH_EEenterprise

Pipeline secrets: DOCKERHUB_LOGIN, DOCKERHUB_PASSWORD, COMPOSER_AUTH, COMPOSER_AUTH_EE.

Add a Magento version

  1. Add an entry to out in config.yaml (keep descending version order). A new PHP family needs a skeleton under skeletons/ first.
  2. Push to master. The pipeline pushes aheadworks/m24dev-ce:<directory> and aheadworks/m24dev-ee:<directory>.

Only 2.4.6-p15 and newer are built from this repo. Older tags in legacy/ are reference-only.

Tag summary

Content type

Image

Digest

sha256:1cce93b64…

Size

284 MB

Last updated

12 days ago

docker pull aheadworks/m24dev-ce:2.4.7-p10-8.3-xdebug