Deployer-1-入门-Getting Started

首先,让我们安装 Deployer(https://deployer.org/docs/installation)。在终端中运行以下命令:
	curl -LO https://deployer.org/deployer.phar
	mv deployer.phar /usr/local/bin/dep
	chmod +x /usr/local/bin/dep

现在我们可以通过 dep 命令使用 Deployer。在我们的项目目录下打开一个终端,运行:
	dep init

该命令将会在当前目录下,创建一个 deploy.php 文件。它被称为 recipe(配方),包含了部署相关的配置和任务。默认情况下,所有的配方都继承了 common 配方(https://github.com/deployphp/deployer/blob/master/recipe/common.php)。将 deploy.php 文件置于我们项目的根目录下,并键入 dep 或 dep list 命令。可以看到所有可用的任务列表。

	我们可以在项目的任何子目录运行 dep 命令。

定义任务非常简单:
	task('test', function(){
		writeIn('Hello world');
	});

要运行上面定义的任务,运行:
	dep test

它将输出:
	➤ Executing task test
	Hello world
	✔️Ok

现在,让我们创建一个任务,该任务将运行远程主机上的命令。为此,我们必须配置 deployer。我们新创建的 deploy.php 文件应该包含一个类似下面的 host 声明:
	host('domain.com')
		->stage('production')
		->set('deploy_path', '/var/www/domain.com')

	也可以在单独的 yaml 文件中声明 hosts。查看更多关于 inventory 的信息(https://deployer.org/docs/hosts#inventory-file)。

我们可以在这里,查看更多关于 host 配置的信息(https://deployer.org/docs/hosts)。现在,让我们定义一个任务,该任务将从远程主机上输出一个 pwd 命令:
	task('pwd', function(){
		$result = run('pwd');
		writeIn("Current dir: $result");
	});

运行 dep pwd,将输出:
	➤ Executing task pwd
	Current dir: /var/www/domain.com
	✔️Ok

现在让我们为第一次部署做准备。我们需要配置,诸如 repository、shared_files 以及其它参数:
	set('repository', 'git@domain.com:username/repository.git');
	set('shared_files', [...]);

我们可以使用 get 函数,返回每个任务中参数值。此外,我们可以覆盖每个 host 的每个配置:
	host('domain.com')	
		...
		->set('shared_files', [...]);

查看更多关于 'configuring' 部署的信息(https://deployer.org/docs/configuration)
	
现在让我们来部署我们的应用:
	dep deploy

要在输出中包含额外的详细信息,我们可以使用 --verbose 选项来增加详细信息:
	-v - 普通输出
	-vv - 更详细输出
	-vvv - 调试

Deployer 会在主机上创建以下目录:
	releases - 包含发布版本的目录
	shared - 包含共享的文件和目录
	current - 当前发布版本的符号链接

配置主机来服务 current 的 public 目录

注意,deployer 默认使用 ACL(https://en.wikipedia.org/wiki/Access_control_list) 来设置权限。我们可以使用 writable_mode 配置来改变该默认行为。

默认情况下,deployer 保持最新的 5 个发布版本,但是我们可以通过修改相关的参数,来增加该数值:
	set('keep_releases', 10);

如果在部署过程中发生错误,或新发布版本出错,可以简单地运行以下命令来回滚到之前的工作发布版本:
	dep rollback

我们可能希望在某些任务,之前/之后 运行一些任务。配置非常简单!

让我们在 deploy 完成后,重载 php-fpm:
	task('reload:php-fpm', function(){
		run('sudo /usr/sbin/service php7-fpm reload');
	});
	after('deploy', 'reload:php-fpm');

如果我们需要连接到主机,Deployer 有一个快捷访问方式:
	dep ssh

该命令将连接到指定的主机,并切换到 current_path。

查看更多关于 '配置部署' 的信息(https://deployer.org/docs/configuration)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值