prooxxy / gleipnir
我为 Magento 2 定制的个人即插即用 docker-composer 包装器
README
本地设置时的 Magento 2 环境管理器
注意:这是一个个人项目。我尽量做到,但不能保证会遵循 semver 或定期更新。因此,该项目可以作为在处理多个项目时管理本地环境的示例。
安装
composer require prooxxy/gleipnir:1.* --dev
chmod +x bin/gleipnir
mkdir -p .gleipnir/config/
touch .gleipnir/config/.env.gleipnir
使用
安装后,可执行文件在 bin/gleipnir
中可用,从此取代了 bin/magento
和 docker-compose
。
运行 bin/gleipnir help
以列出可用命令
gleipnir
用于调用命令,也是 magento 的入口点,如前所述。
gleipnir 未能识别的任何参数都将传递给 magento。
因此,如 start
、stop
、restart
等参数将由 gleipnir 解释,而 setup:upgrade
、cache:flush
等参数将传递到 php 容器中的 bin/magento
。
请参阅 config/.env.gleipnir
以获取示例配置。
配置
配置位于 config/.env.gleipnir
可以通过在 .gleipnir/config/.env.gleipnir
中添加修改后的键值对来覆盖它。
PROJECT_NAME
是项目的唯一标识符。对于您启动的每个项目,它都必须是唯一的。
TLD
是顶级域名,可以更改为您想要的任何内容。
SERVICES
包含启用服务的列表。从列表中删除服务将禁用它们。(docker-compose 的 depends_on 限制仍然适用)
MULTISITE
包含站点条目的列表。
站点条目包含三部分。<domain_name>:<run_code>:<run_scope> 以下示例将创建一个配置为以下配置的站点:域名 + TLD
= dummy.test
MAGE_RUN_CODE = default
MAGE_RUN_TYPE = website
PROJECT_NAME='gleipnir'
TLD=".test"
SERVICES=('proxy' 'database' 'php' 'rabbitmq' 'redis' 'mailhog' 'elasticsearch')
MULTISITE=("dummy:default:website")
覆盖 docker-compose.yml
如果需要,可以覆盖 docker-compose.dist.yml。按照以下步骤进行:
- 在
.gleipnir/config/
中添加新文件docker-compose.dist.yml
- 像添加额外的 docker-compose 文件一样添加覆盖项
Varnish
可以使用 USE_VARNISH 标志切换 Varnish。
代理服务负责 TLS 终止并将数据传递给 Varnish。
当不使用 Varnish 时,它将直接将数据传递到通常从 Varnish 接收数据的 httpd 服务。
覆盖配置文件
待办事项
功能
- 在配置中设置依赖关系版本
- 多站点支持
- TLS 支持
- 可切换 Varnish
- 支持额外的 docker-compose 文件
- 已安装 rabbitmq
- 使用 mailhog 进行邮件拦截
待办事项
- 添加对 mysql 8 的支持
- 添加对 composer 版本的支持