firehed / deploy-command
部署命令
Requires
- php: ^7.2 || ^8.0
- psr/log: ^1.0
- symfony/console: ^4.0 || ^5.0
- symfony/process: ^4.0 || ^5.0
Requires (Dev)
- phpstan/phpstan: ^0.12.47
- phpstan/phpstan-phpunit: ^0.12.16
- phpstan/phpstan-strict-rules: ^0.12.5
- phpunit/phpunit: ^8.2 || ^9.0
- squizlabs/php_codesniffer: ^3.2
- dev-master
- 1.2.0
- 1.1.0
- 1.0.0
- dev-dependabot/composer/phpstan/phpstan-phpunit-tw-0.12.16or-tw-1.0.0
- dev-dependabot/composer/phpstan/phpstan-tw-0.12.47or-tw-1.0.0
- dev-dependabot/composer/phpstan/phpstan-strict-rules-tw-0.12.5or-tw-1.0.0
- dev-dependabot/composer/psr/log-tw-1.0or-tw-3.0
- dev-dependabot/composer/symfony/process-tw-4.0or-tw-5.0or-tw-7.0
- dev-record-flag
This package is auto-updated.
Last update: 2024-09-10 02:07:39 UTC
README
这是一个预先制作的 Symfony Console 组件,用于手动部署您的应用程序。目前,它仅支持通过 kubectl
部署到 Kubernetes。一次部署多个镜像 是 支持的。
本质上,它是对运行 kubectl set image deploy ...
的一个花哨包装。
配置和用法
composer require firehed/deploy-command
在您的现有 Symfony Console 设置或配置中某处
$targets = [ [ 'container' => 'your-container-name', 'deployment' => 'your-deployment-name', 'image' => 'yourco/yourimage:$IMAGE', 'namespace' => 'your-deployment-namespace', ], [ // Another thing to deploy at the same time ] ]; $kubectl = new Firehed\Console\Deploy\Kubectl($targets); $deploy = new Firehed\Console\Deploy($kubectl); $application = new Symfony\Component\Console\Application(); // ... $application->add($deploy); $application->run();
在您的 image
中,$IMAGE
将被替换为命令参数的提交哈希,或 master
的哈希。它在上面的例子中 NOT 是一个 PHP 变量(注意单引号)。namespace
是可选的,默认为 Kubernetes 的 default
。
事件钩子
部署命令将在部署过程运行前后运行您请求的任何事件钩子。要注册一个钩子,请调用 $deploy->before($hook);
或 $deploy->after($hook);
钩子必须是一个具有签名 function (string $hash, string $revision, bool $isDryRun)
的可调用。钩子主要设计用于发送通知(例如,发布到 Slack),但可以用于任何您想要的事情。
需求和限制
此工具仅在 git 仓库中工作,并期望您的 Docker 镜像使用完整的 40 位提交哈希进行标记(例如,yourname/yourfancyproject:92dac20583b35ea7167366bbf0b24243016911c0
)。这是一个仅用于部署的工具,并不执行构建。
所有部署的镜像都将使用相同的哈希,并一起部署。目前不支持选择性部署。