bazo / app-deployer
一种PaaS风格的部署应用程序
dev-master
2017-01-31 21:25 UTC
Requires
- php: >= 5.4.0
- alcaeus/mongo-php-adapter: dev-master
- bazo/git-wrapper: @dev
- bazo/nette-console-extension: @dev
- bazo/nette-document-manager-extension: @dev
- bazo/nette-mediator-extension: @dev
- bazo/nette-monolog-extension: @dev
- bazo/nette-newrelic-extension: dev-master
- bazo/wamp-client: @dev
- cboden/ratchet: v0.2.7
- doctrine/mongodb-odm: @dev
- guzzle/guzzle: v3.6.0
- kdyby/redis: @dev
- nette/nette: @stable
- symfony/console: dev-master as 2.7.x-dev
- symfony/event-dispatcher: @dev
- symfony/filesystem: @dev
- symfony/process: @dev
This package is not auto-updated.
Last update: 2020-01-07 13:43:15 UTC
README
这是什么
Deployer是一个PaaS风格的部署应用程序(类似于Pagodabox或Appfog)。它旨在用于在私有VPS服务器上部署Web应用程序
特性
一键推送自动部署、发布历史记录、发布重新部署
待办事项
- 回滚到上一个版本
- 私钥控制部署访问
先决条件
- mongodb
- redis
- php 5.4
- git
确保您的系统符合Nette框架的要求:http://doc.nette.org/en/requirements
安装
- 将应用程序复制到目标位置
- 运行composer install
- 运行cli app:install - 这将创建数据库和集合,默认名称为deployer
- 运行user:create创建您的第一个应用用户
如果您希望从应用程序GUI进行部署,您需要运行WAMP服务器和部署工作脚本
- php wamp/server.php
- php workers/deployWorker.php
建议使用supervisord在后台运行这两个进程。如果您需要同时部署多个应用程序,则可以运行任意数量的部署工作进程。同一应用程序的部署只能同时运行一个。自动部署不使用部署工作进程,而是作为git过程中的post receive钩子执行。
部署应用程序
通过点击导航栏中的“添加应用程序”按钮添加新应用程序 - 选择一个名称并提交 - Deployer将为您创建一个本地裸git仓库以推送 - 前往应用程序设置并设置应用程序的根文件夹 此文件夹将包含三个子文件夹
- releases - 包含所有发布版本
- live - 您应该将Web服务器指向此文件夹,它是当前发布版本的符号链接
- shared - 包含在发布之间共享的文件夹,通常包括日志和临时文件夹、上传等...
自定义部署过程
您可以通过在应用程序根文件夹中添加deploy.neon文件来自定义部署过程。该文件有两个部分
shared_folders - 您想要在发布之间共享的文件夹列表 hooks - 在部署过程的各个阶段执行的命令
- after_receive - 在推送的代码被检出后立即执行,非常适合运行composer install
- before_deploy - 在将文件复制到发布文件夹后、在符号链接live文件夹之前执行
- after_deploy - 在将live文件夹符号链接到发布文件夹之后执行
命令可以是您的服务器上可执行的任何内容
sample deploy.neon文件
shared_folders: - temp - log hooks: after_receive: - "composer install" before_deploy: - "php test.php" after_deploy: - "rm -rf temp/cache"