【问题标题】:EC2 + Capistrano: When I deploy a new code to EC2, on website is still displayed an old oneEC2 + Capistrano:当我将新代码部署到 EC2 时,网站上仍显示旧代码
【发布时间】:2013-09-28 11:07:33
【问题描述】:

我有一个在 EC2 实例上运行的 Rails 应用程序。作为部署工具,我使用的是 Capistrano。

当我提交新代码时(成功 - 我在存储桶中看到它),运行 cap deploy(再次,代码已成功部署,没有错误)并检查我网站的 URL,我没有看到新的代码,但旧的。

这怎么可能?可能是什么问题?

编辑:Capistrano 输出:

    /Users/adam/.rvm/gems/ruby-1.9.3-p385@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:197: warning: Insecure world writable dir /usr/local/mysql in PATH, mode 040777
  * 2013-09-28 12:41:43 executing `deploy'
  * 2013-09-28 12:41:43 executing `deploy:update'
 ** transaction: start
  * 2013-09-28 12:41:43 executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote git@bitbucket.org:my_bb_name/my_app_name.git master"
    command finished in 6564ms
  * executing "if [ -d /home/my_user_name/my_app_name/shared/cached-copy ]; then cd /home/my_user_name/my_app_name/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard fa26f147bfbc8147134177294a248f6a002e6e48 && git clean -q -d -x -f; else git clone -q -b master git@bitbucket.org:my_bb_name/my_app_name.git /home/my_user_name/my_app_name/shared/cached-copy && cd /home/my_user_name/my_app_name/shared/cached-copy && git checkout -q -b deploy fa26f147bfbc8147134177294a248f6a002e6e48; fi"
    servers: ["IP"]
    [IP] executing command
    command finished in 3272ms
    copying the cached version to /home/my_user_name/my_app_name/releases/20130928104159
  * executing "cp -RPp /home/my_user_name/my_app_name/shared/cached-copy /home/my_user_name/my_app_name/releases/20130928104159 && (echo fa26f147bfbc8147134177294a248f6a002e6e48 > /home/my_user_name/my_app_name/releases/20130928104159/REVISION)"
    servers: ["IP"]
    [IP] executing command
    command finished in 2246ms
  * 2013-09-28 12:42:01 executing `deploy:finalize_update'
    triggering before callbacks for `deploy:finalize_update'
  * 2013-09-28 12:42:01 executing `bundle:install'
  * executing "cd /home/my_user_name/my_app_name/releases/20130928104159 && bundle install --gemfile /home/my_user_name/my_app_name/releases/20130928104159/Gemfile --path /home/my_user_name/my_app_name/shared/bundle --deployment --quiet --without development test"
    servers: ["IP"]
    [IP] executing command
    command finished in 1234ms
  * executing "chmod -R -- g+w /home/my_user_name/my_app_name/releases/20130928104159 && rm -rf -- /home/my_user_name/my_app_name/releases/20130928104159/public/system && mkdir -p -- /home/my_user_name/my_app_name/releases/20130928104159/public/ && ln -s -- /home/my_user_name/my_app_name/shared/system /home/my_user_name/my_app_name/releases/20130928104159/public/system && rm -rf -- /home/my_user_name/my_app_name/releases/20130928104159/log && ln -s -- /home/my_user_name/my_app_name/shared/log /home/my_user_name/my_app_name/releases/20130928104159/log && rm -rf -- /home/my_user_name/my_app_name/releases/20130928104159/tmp/pids && mkdir -p -- /home/my_user_name/my_app_name/releases/20130928104159/tmp/ && ln -s -- /home/my_user_name/my_app_name/shared/pids /home/my_user_name/my_app_name/releases/20130928104159/tmp/pids"
    servers: ["IP"]
    [IP] executing command
    command finished in 523ms
  * executing "find /home/my_user_name/my_app_name/releases/20130928104159/public/images /home/my_user_name/my_app_name/releases/20130928104159/public/stylesheets /home/my_user_name/my_app_name/releases/20130928104159/public/javascripts -exec touch -t 201309281042.03 -- {} ';'; true"
    servers: ["IP"]
    [IP] executing command
    command finished in 473ms
  * 2013-09-28 12:42:03 executing `deploy:create_symlink'
  * executing "rm -f /home/my_user_name/my_app_name/current &&  ln -s /home/my_user_name/my_app_name/releases/20130928104159 /home/my_user_name/my_app_name/current"
    servers: ["IP"]
    [IP] executing command
    command finished in 291ms
 ** transaction: commit
  * 2013-09-28 12:42:04 executing `deploy:restart'
  * executing "kill -s USR2 `cat /home/my_user_name/my_app_name/current/tmp/pids/unicorn.pid.oldbin`"
    servers: ["IP"]
    [IP] executing command
    command finished in 277ms

EDIT2:我在想deploy.rb中的独角兽任务是否有问题:

namespace :deploy do

  task :start, :roles => :app, :except => { :no_release => true } do 
    run "cd #{current_path} && #{unicorn_cmd} -c #{unicorn_config} -E #{rails_env} -D"
  end
  task :stop, :roles => :app, :except => { :no_release => true } do 
    run "kill -QUIT `cat #{unicorn_pid}`"
  end

  task :restart, :roles => :app, :except => { :no_release => true } do
    run "kill -s USR2 `cat #{unicorn_pid}`"
  end

end

【问题讨论】:

  • 你可以检查清除浏览器缓存
  • 你能粘贴 Capistrano 的输出吗?如果您连接到您的实例,可能有一个文件包含您正在部署的提交 ID your_app/current/REVISION
  • 伙计们,我添加了 Capistrano 输出。谢谢

标签: ruby-on-rails ruby deployment amazon-ec2 capistrano


【解决方案1】:

Capistrano Unicorn 5 分钟内解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-06
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    相关资源
    最近更新 更多