hpatoio/deploy-bundle

通过rsync轻松部署。从Symfony 1项目迁移:deploy命令。

安装次数: 93,618

依赖者: 1

建议者: 0

安全性: 0

星级: 34

关注者: 3

分支: 13

开放性问题: 0

类型:symfony-bundle

1.5.3 2016-02-18 22:01 UTC

This package is auto-updated.

Last update: 2024-09-17 23:50:02 UTC


README

Total Downloads Latest Stable Version SensioLabsInsight

安装

运行命令

$ composer require hpatoio/deploy-bundle ~1.5

注意:此项目遵循语义化版本控制。最新稳定分支是1.5

在项目中启用此包

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        // ...
        new Hpatoio\DeployBundle\DeployBundle(),
        // ...
    );
}

配置

配置主要是定义环境。您可以定义任意多的环境,唯一的必填项是host。部署通过rsync进行,因此如果未指定,则使用默认值。记住,要获取此包的配置参考,您可以运行

bin/console config:dump-reference DeployBundle

配置示例

# app/config/config.yml
deploy:
  prod:
    rsync-options: '-azC --force --delete --progress -h --checksum'
    host: my.destination.env
    dir: /path/to/project/root
    user: root
    port: 22
    timeout: 120 # Connection timeout in seconds. 0 for no timeout.
  uat:
    host: 192.168.1.10
    user: root2
    dir: /path/to/project/root
    port: 22022
    post_deploy_operations: 
        - bin/console cache:clear --env=prod
        - bin/console assets:install --env=prod
        - bin/console assetic:dump --env=prod    

大多数键不需要解释,除了

post_deploy_operations

您可以为部署后要运行的远程服务器上的命令添加一个列表。在上面的配置中,您可以看到常见的部署后命令(清除缓存、发布资源等)。这些命令作为远程服务器上的shell命令运行。因此,您可以输入任何您想要的shell命令(cp、rm等)

请不要混淆Symfony环境和部署环境。如上所述配置所示,我们在部署环境uat上运行了Symfony环境prodpost_deploy_operations

rsync选项

如果您在环境中添加了rsync-options键,则将覆盖rsync使用的默认选项。因此,如果没有指定,系统将使用

  • "-azC --force --delete --progress -h --checksum"
  • 如果指定了config.yml中目标环境的rsync-options键的值,则使用该键的值
  • 命令行选项--rsync-options的值

Rsync排除

app/config下创建一个rsync_exclude.txt文件以排除部署中的文件。这里是一个良好的起点。

您还可以创建针对环境的rsync_exclude。只需在app/config中创建一个名为rsync_exclude_{env}.txt的文件。有关更多详细信息,您可以阅读这里 #3 和这里 #7

强制供应商同步

通常vendor目录会被排除在rsync之外。如果您需要同步它,可以添加--force-vendor。(稍后会有示例)

使用

部署很简单

php bin/console project:deploy --go prod

有点不确定吗?模拟部署

php bin/console project:deploy prod

需要更新供应商吗?使用选项 --force-vendor(通常供应商会被排除在rsync之外)

php bin/console project:deploy --go --force-vendor prod

为rsync自定义参数

php bin/console project:deploy --rsync-options="-azChdl" prod

许可协议

DeployBundle遵循CC-BY-SA-3.0许可协议 - 有关详细信息,请参阅这里