我正在尝试设置多个角色,一个用于直播,另一个用于开发.它们看起来像这样:
role :live, "example.com"
role :dev, "dev.example.com"
Run Code Online (Sandbox Code Playgroud)
但是,当我运行cap deploy时,它会为两个服务器执行.我尝试了以下内容,它总是在两者上执行.
cap deploy live
cap ROLE=live deploy
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我知道我可以编写一个只响应一个角色的自定义任务,但我不想编写一大堆任务只是为了告诉它响应一个或另一个角色.谢谢!
sca*_*er2 13
Capistrano Multistage绝对是您发布用于部署到环境的示例的解决方案.关于部署到角色或服务器的问题,Capistrano也提供了命令行解决方案.
部署到单个角色(注意ROLES是复数):
cap ROLES=web deploy
Run Code Online (Sandbox Code Playgroud)
要部署到多个角色:
cap ROLES=app,web deploy
Run Code Online (Sandbox Code Playgroud)
要部署到特定服务器(注意HOSTS是复数):
cap HOSTS=web1.myserver.com deploy
Run Code Online (Sandbox Code Playgroud)
要部署到多个服务器:
cap HOSTS=web1.myserver.com,web2.myserver.com deploy
Run Code Online (Sandbox Code Playgroud)
要部署到具有角色的服务器:
cap HOSTS=web1.myserver.com ROLES=db deploy
Run Code Online (Sandbox Code Playgroud)