一个简单的脚本,用于将PHP应用程序部署到AWS ElasticBeanstalk

v1.4.1 2018-01-19 19:24 UTC

This package is auto-updated.

Last update: 2024-09-11 02:53:39 UTC


README

一个简单的脚本,可以在几分钟内将PHP应用程序部署到ElasticBeanstalk。

安装

Composer

composer global require "leroy-merlin-br/dployer=*@dev"

dployer的全局配置

AWS配置

您有2种方式来配置AWS

  • 环境变量
  • JSON配置文件

环境变量

您必须填写以下环境变量。

  • DPLOYER_PROFILE : 您在AWS中的配置文件名。
  • DPLOYER_REGION : 您想要部署的区域。
  • DPLOYER_AWS_KEY : 您的AWS密钥。
  • DPLOYER_AWS_SECRET : 您的AWS密钥。

JSON配置文件

  • 创建以下配置文件:~/.aws/config.json
{
    "includes": ["_aws"],
    "services": {
        "default_settings": {
            "params": {
                "profile": "my_profile",
                "region": "sa-east-1",
                "key": "YOURSUPERKEY",
                "secret": "YoUrSuPeRsEcReT"
            }
        }
    }
}

AWS存储桶

~/.bashrc文件的末尾添加以下行

export DPLOYER_BUCKET=your-bucket-identifier-0-12345678

用法

在您想要部署的文件夹中,只需运行

dployer deploy ApplicationName elasticbeanstalked-environment

选项

您可以使用以下选项

  • -c (--config): 使用不同的自定义配置文件而非 .dployer
  • -i (--interactive): 在配置文件中运行每个命令之前询问
  • -v (--verbose): 显示命令输出
  • -f (--force): 即使脚本退出错误也继续部署过程

项目配置

为了优化您的项目部署,您可以创建一个配置文件来保存应用程序和环境变量。此外,您还可以获得一些额外的功能,例如:运行您想要运行的脚本的events,以及复制额外文件和删除一些文件在压缩之前的选项。

只需在项目根目录中创建一个.dployer文件。

注意:一旦您有包含已定义应用程序和环境变量的.dployer文件,您只需运行以下命令即可

dployer deploy

示例.dployer

{
    "application": "ApplicationName",
    "environment": "my-environment",
    "scripts": {
        "init": "composer dumpautoload",
        "before-pack": [
            "gulp build --production"
        ],
        "before-deploy": [
            "echo 'Deploying new version'",
            "echo 'Another important command to run before deploy'"
        ],
        "finish": [
            "gulp clean",
            "echo 'Nicely done'"
        ]
    },
    "copy-paths": [
        "vendor",
        "public/assets"
    ],
    "exclude-paths": [
        ".git",
        "vendor/**/*.git"
    ]
}

事件

dployer在部署流程中触发4个事件

  • init: 在初始验证之后、部署任何命令之前运行
  • before-pack: 在创建zip文件之前运行
  • before-deploy: 在创建ElasticBeanstalk版本和上传zip之前运行
  • finish: 在上传新版本后运行

copy-paths

dployer只是将您的当前git分支克隆到一个临时文件夹中,然后创建一个zip文件。但有时,您想部署一些被git忽略的文件(在.gitignore文件中)。

在这种情况下,您可以将这些文件/文件夹放在配置文件中的copy-paths键中,如示例部分所示。

.dployer

(...)
"copy-paths": [
    "vendor",
    "public/assets/"
]
(...)

exclude-paths

在另一种情况下,有时您也想排除一些文件/文件夹。

.dployer

(...)
"exclude-paths": [
    ".git",
    "vendor/**/*.git"
]
(...)