Capistrano 3:部署后不是“刷新”代码(网站保持部署前的状态)

用户984621

我在网站上做了一些修改(纯 HTML+CSS),将其部署在服务器上,刷新浏览器后内容是相同的。

于是我登录服务器,杀死独角兽,手动启动,终于出现了新的内容。

我如何自动执行此操作?

目前,我有这个deploy.rb设置:

# config valid only for current version of Capistrano
lock "3.8.1"

set :application, "project"
set :repo_url, "[email protected]:username/project.git"
set :branch, "master"
set :tmp_dir, '/home/deployer/tmp'

set :deploy_to, "/home/deployer/apps/project"
set :keep_releases, 5

set(:executable_config_files, %w(
  unicorn_init.sh
))

# files which need to be symlinked to other parts of the
# filesystem. For example nginx virtualhosts, log rotation
# init scripts etc.
set(:symlinks, [
  {
    source: "nginx.conf",
    link: "/etc/nginx/sites-enabled/default"
  },
  {
    source: "unicorn_init.sh",
    link: "/etc/init.d/unicorn_#{fetch(:application)}"
  },
  {
    source: "log_rotation",
   link: "/etc/logrotate.d/#{fetch(:application)}"
  },
  {
    source: "monit",
    link: "/etc/monit/conf.d/#{fetch(:application)}.conf"
  }
])


namespace :deploy do   
  desc 'Restart application'
  task :restart do
    task :restart do
      invoke 'unicorn:reload'
    end
  end
  after :publishing, :restart    

  desc "Make sure local git is in sync with remote."
  task :check_revision do
    on roles(:web) do
      unless `git rev-parse HEAD` == `git rev-parse origin/master`
        puts "WARNING: HEAD is not the same as origin/master"
        puts "Run `git push` to sync changes."
        exit
      end
    end
  end
  before "deploy", "deploy:check_revision"
end

为了不需要手动重启服务器,我还需要添加什么?

谢谢

棒棒糖

您可以创建一个为您执行此重新启动步骤的任务,并在部署过程之后调用它。也许它可以使用所需的命令运行 shell 脚本来重新启动 Unicorn。将您使用的命令放入脚本中,并通过 Capistrano 任务调用它。像这样的东西:

desc 'Restarts the application calling the appropriate Unicorn shell script.'
task :restart_unicorn do
  on roles(:app) do
    execute '/etc/init.d/restart_unicorn.sh'
  end
end

after 'deploy:published', 'restart_unicorn'

更多细节在这里不要忘记修改 shell 文件权限以允许执行。任务代码可以在您的deploy.rb文件中,但我建议将其移动到特定的 Capistrano 任务文件中,以保持您的代码井井有条。希望这可以帮助!

PS.:也看看Capistrano 流程实际上,您可以创建在流程的任何部分之前或之后运行的任务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Capistrano 3部署后未重新启动

来自分类Dev

Capistrano Capfile:>加载“部署”有什么作用?

来自分类Dev

Capistrano部署错误:未设置阶段

来自分类Dev

Capistrano部署权限被拒绝

来自分类Dev

Capistrano 3 + AWS:部署问题

来自分类Dev

Capistrano 3进程失败

来自分类Dev

如何从任务中停止Capistrano部署

来自分类Dev

Capistrano 3.1.0 Rake> = 10.2.0的部署问题

来自分类Dev

Capistrano 3没有部署新代码

来自分类Dev

Ruby使用Capistrano问题部署到localhost

来自分类Dev

部署前运行任务:符号链接:共享的capistrano 3

来自分类Dev

如何从Capistrano部署脚本执行捆绑命令

来自分类Dev

Capistrano部署删除表

来自分类Dev

无法使用capistrano部署项目

来自分类Dev

Capistrano部署后运行rails applicaton

来自分类Dev

部署时如何防止Capistrano显示密码

来自分类Dev

用Capistrano部署.env文件

来自分类Dev

Capistrano部署后,Rails资产未编译

来自分类Dev

Capistrano部署和设计密钥

来自分类Dev

Capistrano的部署因对Capistrano-Harrow宝石的新要求而中断?

来自分类Dev

capistrano部署在启动sidekiq时失败

来自分类Dev

排除Capistrano部署的文件

来自分类Dev

Capistrano部署后缺少Rails资产

来自分类Dev

Capistrano部署行为

来自分类Dev

Capistrano 3 + AWS:部署问题

来自分类Dev

Capistrano 3 setfacl失败

来自分类Dev

Capistrano Symfony部署失败

来自分类Dev

使用Bitbucket进行Capistrano部署

来自分类Dev

使用 capistrano 3 和每当 gem 部署