manala / manalize
轻量级二进制文件,通过manala ansible角色提供vagrant堆栈
Requires
- php: ^7.1.3
- composer/semver: ^1.4
- elao/enum: ^0.4.0
- guzzlehttp/guzzle: ^6.2
- nikic/iter: ^2.0
- symfony/console: ^3.4|^4.0
- symfony/filesystem: ^3.4|^4.0
- symfony/process: ^3.4|^4.0
- symfony/yaml: ^3.4|^4.0
- twig/twig: ~2.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- justinrainbow/json-schema: ^1.6
- kherge/box: ^2.7.5
- symfony/console: ^3.4|^4.0
- symfony/phpunit-bridge: ^4.1
This package is not auto-updated.
Last update: 2020-10-17 06:58:26 UTC
README
⚠️ 为了使用Manala二进制文件以及食谱,此仓库已不再维护。
Manalize
本项目为各种项目(Symfony项目、自定义应用等)提供即用型开发环境。
目前,提供的环境基于Vagrant,并通过Manala ansible角色进行配置。
计划实现一些基于Docker的实现,并很快会出现。
为什么?
因为我们太懒惰了,不愿意为每个需要工作的项目手动设置本地开发环境。简而言之,我们需要
- 能够在几分钟内从任何平台开始工作任何新的/现有的项目
- 启用/禁用对语言、包或各种实用工具的支持
- 保持本地环境在不同项目之间的一致性(实践、工具)
- 使本地环境尽可能接近生产环境
- 根据需要销毁/重建任何环境
内部结构
Manalize建立在以下库的基础上
- Composer Semver
- Guzzle
- symfony的Console、Process、Filesystem和Yaml组件
先决条件
- PHP 7.1+
- Vagrant 2.2.1+
- Vagrant Landrush 1.3.0+
- VirtualBox 5.2.22+
安装
使用安装程序(推荐)
curl -LSs https://raw.githubusercontent.com/manala/manalize/master/installer.php | php
使用Composer
composer global require manala/manalize
使用git
git clone git@github.com:manala/manalize
cd manalize
composer install
make build
mv manalize.phar /usr/local/bin/manalize
chmod a+x /usr/local/bin/manalize
用法
检查您的宿主是否满足我们的要求
在使用 manalize 之前,您需要确保您的宿主已准备好。可以通过运行以下命令轻松实现
manalize check:requirements
将显示一系列要求和推荐,您可以根据需要安装/更新包,并根据您的宿主当前状态进行排序。
设置您的环境
假设您第一次克隆了一个Web项目并且需要本地运行,只需执行setup命令即可
manalize setup <my-awesome-app>
此命令将交互式地配置虚拟机以适应您的项目。
一些文件将被添加到您的项目中
- 一个
Vagrantfile - 一个包含一些您在整个项目过程中可能需要使用的有用任务的
Makefile - 一个包含所有与虚拟机配置相关的配置文件的
ansible/目录 - 最终是一些特定于所选环境的文件
完成此步骤后,您的环境就准备好了,您可以使用以下命令来配置虚拟机
make setup
使用您的环境
一旦setup过程完成(可能需要几分钟),您的环境就可以运行,虚拟机也在运行。要管理和与之协同工作,只需像往常一样使用vagrant命令行工具即可
vagrant up|halt|reload|ssh
保持您的环境更新
假设您的项目环境已存在,虚拟机运行良好,其配置将保留在您创建时的状态。
由于manala ansible roles(以及相应的模板)在不断发展,您可能需要关注所做的重要更改,以便相应地更新您的环境。
为此,有两个命令需要了解:self-update和diff。
self-update
manalize self-update
运行此命令将更新您的manalize二进制文件到最新版本,其中包含最新的配置模板。之后,您可以安全地像下面所示使用diff命令。
diff
diff命令允许您获取一个补丁,该补丁表示您当前项目配置与当前版本manalize二进制文件提供的配置之间的差异。
获取补丁
manalize diff --env="<env>" <my-awesome-app>
获取补丁以立即应用
cd <my-awesome-app>
manalize diff --env="<env>" | git apply
获取补丁以稍后应用
cd <my-awesome-app>
manalize diff --env="<env>" > manalize.patch
git apply manalize.patch
注意
⚠️ 在应用补丁时请小心,您对环境配置所做的任何自定义更改将被删除。为了最小化风险,我们建议在尝试应用补丁之前查看补丁。
在不立即更改其配置的情况下更新现有环境
有时,在迁移已经使用Vagrant和/或Ansible的项目时,在不影响现有的项目文件也不添加新文件的情况下设置环境可能很有用。
以下命令将只更新ansible/.manalize元数据文件,该文件将包含您配置的内容
manalize setup --no-update ~/my-awesome-app
然后您可以应用diff命令提供的补丁。
贡献
获取源代码
git clone git@github.com:manala/manalize <path-to-manalize>
使用可执行文件
cd <my-awesome-app> <path-to-manalize>/bin/manalize
运行测试套件
cd <path-to-manalize> make test
故障排除
首先,请确保您的托管环境满足我们所有的要求。确保您的托管环境满足我们所有要求。您的问题可能是由您机器上安装的软件包的不兼容或存在缺陷的版本引起的。
如果不符合,请考虑在此存储库中创建一个问题。我们使用GitHub问题来跟踪缺陷、功能请求和确保支持。
许可证
本项目采用MIT许可证。
有关完整的版权信息,请参阅随源代码一起分发的LICENSE文件。
作者信息
Manala (http://www.manala.io/)

