使用 Laravel Envoy 部署到多个服务器时,如何指定每个服务器的项目根目录?文档中提供的示例假定项目根目录是两个服务器的相同路径。
假设web-1
项目根为/var/html/www
并且web-2
项目根为/var/foo/bar
. 如何在运行时访问不同服务器的项目根目录?
使用 Laravel Envoy 部署到多个服务器时,如何指定每个服务器的项目根目录?文档中提供的示例假定项目根目录是两个服务器的相同路径。
假设web-1
项目根为/var/html/www
并且web-2
项目根为/var/foo/bar
. 如何在运行时访问不同服务器的项目根目录?
有多种方法可以使用 Laravel Envoy 来实现您想要实现的目标。例如,根据您的描述,运行envoy run deploy
.
@servers(['web-1' => '127.0.0.1', 'web-2' => '127.0.0.1'])
@setup
function logMessage($message) {
return "echo '\033[32m" .$message. "\033[0m';\n";
}
@endsetup
@story('deploy')
deploy-web-1
deploy-web-2
@endstory
@task('deploy-web-1', ['on' => ['web-1']])
cd /Users/Shared
{{ logMessage(' Task complete for web-1') }}
@endtask
@task('deploy-web-2', ['on' => ['web-2']])
cd /Users/khill
{{ logMessage(' Task complete for web-2') }}
@endtask
你必须试试这个
$webServerIps = [
'web-1' => 'xxx.xxx.xxx.xxx',
'web-2' => 'xxx.xxx.xxx.xxx',
];
@servers(array_merge($webServerIps, ['persistent' => 'xxx.xxx.xxx.xxx', 'worker'
=> 'xxx.xxx.xxx.xxx', 'local' => '127.0.0.1']))
我希望你得到你的解决方案。
您也可以点击此链接获取更多帮助