magegyver/m2devbox

🚀 快速创建 Magento 2 开发环境。

1.2.2 2022-04-14 20:54 UTC

This package is auto-updated.

Last update: 2024-09-15 02:02:52 UTC


README

Latest release Magento 2.x Docker 17.05+ License: MPL-2.0

m2devbox 的目标是加速设置 Magento 2 开发环境。

如果你正在开发一个 Magento 2 模块,并希望在多个 Magento 版本中快速测试它,你只需启动你喜欢的 Magento 版本,你的模块(s)将自动在其中可用!

m2devbox 不用于创建生产 Magento 2 Docker 设置。

m2devbox terminal demo animation

📝 要求

  • Docker 17.05+
  • PHP ^7.4||^8.0
  • php-zlib

m2devbox 可以利用最新的 BuildKit Docker 后端,这会带来更快的构建过程和更小的 Docker 镜像。如果 m2devbox 发现 Docker Engine 18.09 或更高版本,它将自动使用 BuildKit。

🛠️ 安装

m2devbox 以 PHAR 文件或 Composer 包的形式提供。您可以在项目本地使用它,也可以全局安装它。

推荐:全局 PHAR 安装

wget https://github.com/MageGyver/m2devbox/releases/latest/download/m2devbox.phar
chmod u+x m2devbox.phar
mv m2devbox.phar /usr/local/bin/m2devbox
m2devbox status

最新的 PHAR 发布版下载到您的本地计算机上,并将其移动到可以通过 $PATH 访问的某个目录中。移动时可能需要超级用户权限。

sudo mv m2devbox.phar /usr/local/bin/m2devbox

现在您可以在任何地方运行 m2devbox

本地 PHAR 安装

wget https://github.com/MageGyver/m2devbox/releases/latest/download/m2devbox.phar
php m2devbox.phar status

最新的 PHAR 发布版下载到您的当前工作目录,并立即使用它。

本地 Composer 安装

composer require magegyver/m2devbox
php vendor/bin/m2devbox status

在您的本地项目中需要 magegyver/m2devbox 并从 vendor/bin/ 目录中运行它。

🧰 工作流程

使用 m2devbox,您可以快速启动一个 Magento 2 实例,并在其中开始开发和测试 Magento 2 扩展。

m2devbox 有两个主要用例

创建一个新的空白模块并启动一个合适的 Magento 2 实例。

这是 m2devbox 的主要用例,如果您想开始构建一个新的模块并需要一个可工作的 Magento 2 环境时,这将非常有用。

m2devbox 将在您的当前工作目录中创建一个空白的 Magento 2 模块。然后它将在宿主系统的缓存目录(即 ~/.cache/m2devbox)中创建一个纯净的 Magento 安装,构建一个包含此安装的 Docker 设置,并将您的新的模块挂载到 app/code/

启动一个纯 Magento 2 实例。

如果您已经有一个或多个模块,并希望在任何给定的 Magento 2 实例中测试它们,这种模式适合您。

m2devbox 在宿主系统的缓存目录(即 ~/.cache/m2devbox)中创建一个纯净的 Magento 2 安装,构建一个包含此安装的 Docker 设置,并将 ./app_code/ 挂载到容器的 Magento app/code/ 目录。

💻 使用方法

创建一个新空白模块并启动一个合适的 Magento 2 实例

  1. 创建一个空的工作目录,并在其中执行 m2devbox start-module
  2. 回答一些关于您模块的基本问题(例如名称和所需的 Magento 2 版本)。
  3. 等待片刻,m2devbox 创建空白模块并启动您的 Magento 2 实例。☕
  4. 127.0.0.1 m2.docker 添加到您的 /etc/hosts 文件中,以便能够访问您的站点。
  5. 导航到 http://m2.docker:8080 并查看您的模块在实际运行中的效果!

仅启动一个Magento 2实例

  1. 导航到您机器上的某个项目目录。
  2. 创建一个app_code/目录。此目录将被挂载到您的Magento 2实例的app/code/目录中,并包含所有模块源代码。
  3. (可选) 在您的项目目录根目录下创建一个.env文件以自定义m2devbox的设置(见下文)。
  4. 以您想要的Magento 2版本启动一个实例:m2devbox start 2.4.2
  5. 127.0.0.1 m2.docker 添加到您的 /etc/hosts 文件中,以便能够访问您的站点。
  6. 导航到 http://m2.docker:8080 并查看您的模块在实际运行中的效果!

🔨 自定义.env设置

您可以通过在.env文件中定义变量来自定义m2devbox的一些方面。在您的项目文件夹中创建一个名为.env的纯文本文件,并将您想要使用的每个变量放在新的一行中。为每个变量分配一个值,使用=(没有空格)分隔变量和值。

🎓 CLI命令参考

检查正在运行的实例

m2devbox [status]

不带参数运行m2devbox或带有status参数时,会显示已构建和当前正在运行的实例的概述。

创建一个空白模块

m2devbox start-module [options] 

此命令在指定的项目目录中创建一个空的Magento 2模块,只包含基本的registration.phpetc/module.xml文件。
根据您提供的选项,m2devbox将创建一个预配置了官方Magento 2 PhpStorm插件设置的PhpStorm项目文件夹(.idea/)。

您可以通过命令行参数提供这些选项,或者在没有参数运行命令时交互式回答问题。

启动当前项目的默认实例

m2devbox start

要启动当前工作目录的.env文件中配置的Magento 2实例,只需运行不带显式版本字符串的m2devbox start即可。

启动特定版本的Magento

m2devbox start <version>

要启动特定的Magento 2实例,只需将所需的版本作为m2devbox start参数提供。

如果尚未存在此版本的实例,m2devbox将自动为您下载和安装它。您可以在m2devbox为您设置好一切时,泡一杯咖啡或简单地查看进度指示器。

如果已启动此版本的实例,它将被停止并重新启动。

停止当前运行的实例

m2devbox stop

此命令停止当前运行的Magento 2实例(同一时间只能运行一个实例)。

清除实例

m2devbox clear [options] [<versions>]

此命令停止指定的实例并删除相关的Magento 2源文件和数据库。

在实例内运行CLI命令

m2devbox cli [<container>] [<command>]

此命令在已启动的容器内运行CLI命令。如果您不带任何参数运行m2devbox cli,将为您启动一个位于web容器内的新的bash会话。这主要用于您想运行不同的Magento CLI命令,如bin/magento cache:clean

👍 支持的Magento版本

  • 2.3.4, -p2
  • 2.3.5, -p1, -p2
  • 2.3.6, -p1
  • 2.3.7, -p3
  • 2.4.0, -p1
  • 2.4.1, -p1
  • 2.4.2, -p1, -p2
  • 2.4.3, -p1, -p2
  • 2.4.4

⚖️ 许可证

m2devbox受Mozilla公共许可证,第2.0版的许可。