Deployer-9-策略-Strategy

本文探讨了在单台服务器和多台服务器环境下,如何有效地进行应用部署。包括构建服务、上传任务以及如何重用常见配方进行部署,确保部署过程高效且独立于本地配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单台服务器
	在大多数情况下,我们不需要多台生产服务器。最好在该机器上也构建发布文件(如缓存、js/css打包)。因此,我们的构建不依赖于我们的本地配置,并且可以从任何地方部署。默认情况下,Deployer 配方旨在填充这些类型的部署。
		desc('Deploy your project');
		task('deploy', [
		    'deploy:prepare',
		    'deploy:release',
		    'deploy:update_code',
		    'deploy:shared',
		    'deploy:vendors',
		    'deploy:symlink',
		]);
	
构建服务
	如果我们有许多台服务器将要部署我们的应用,或者我们打算使用一个 CI 服务器,最好在一台服务器上构建发布版本,然后将文件上传到所有的应用服务器上。

	为此,创建一个 build 本地任务:
		task('build', function () {
		    run('composer install');
		    run('npm install');
		    run('npm run build');
		    // ...
		})->local();

	注意,也可以使用一个简单的任务定义
		task('build', '
		    composer install
		    npm install
		    npm run build    
		    ...        
		');

	之后创建一个 upload 任务:
		task('upload', function () {
		    upload(__DIR__ . "/", '{{release_path}}');
		});

	接下来,创建发布和部署任务:
		task('release', [
		    'deploy:prepare',
		    'deploy:release',
		    'upload',
		    'deploy:shared',
		    'deploy:writable',
		    'deploy:symlink',
		]);

		task('deploy', [
		    'build',
		    'release',
		    'cleanup',
		    'success'
		]);

	现在我们可以运行 dep deploy 命令

重用常见配方
	如果要重用常见配方中的某些任务,请确保在调用任务之前,设置 deploy_path。所有的常见配方任务都依赖于此参数。
		task('build', function () {
		    set('deploy_path', __DIR__ . '/.build');
		    invoke('deploy:prepare');
		    invoke('deploy:release');
		    invoke('deploy:update_code');
		    invoke('deploy:vendors');
		    // Add more build steps here
		    invoke('deploy:symlink');
		})->local();

	注意:确保在调用任务之前,设置 deploy_path。

	之后创建一个 upload 任务:
		task('upload', function () {
		    upload(__DIR__ . "/.build/current/", '{{release_path}}');
		});

	该任务从构建步骤中的 deploy_path 的当前符号链接中获取内容,之后将其上传到应用程序的 release_path 路径。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值