如何使用Capistrano v3只部署到一个服务器?我在网络上找到的所有解决方案都是部署到每个服务器,因此,我会认为它们适用于v2。
我不想部署一个阶段,我已经在使用多阶段,并且我想在其中一个阶段只部署到一个服务器。
如何使用Capistrano v3只部署到一个服务器?我在网络上找到的所有解决方案都是部署到每个服务器,因此,我会认为它们适用于v2。
我不想部署一个阶段,我已经在使用多阶段,并且我想在其中一个阶段只部署到一个服务器。
正如指出的那样,在Capistrano 3中,将应用程序的特定部分部署到单个服务器的方法是利用HOST过滤。假设您直接部署到生产环境,并且在config/deploy/production.rb
中有此配置:
set :stage, :production
server "webserver1.example.com”, roles: [:web]
server "appserver1.example.com", roles: [:app]
server "appserver2.example.com", roles: [:app]
server "appserver3.example.com", roles: [:app]
server “dbserver1.example.com”, roles: [:db]
server “dbserver2.example.com”, roles: [:db]
如果您只想部署到您的Web服务器1,则只需运行以下命令:
cap --hosts=webserver1.example.com production deploy
您必须使用设置multistage。
默认情况下,Capistrano 3.x是多阶段的。
在其中一个阶段中,您仅定义要使用的服务器。
set :stage, :staging
server 'staging.zodiacmedia.co.uk', roles: %w{web app db}, port: 22
set :deploy_to, '/var/www/staging.example.com'
运行命令:
cd /home/deploy/capistrano/example
cap staging something:to:do