【问题标题】:Ruby on Rails Capistrano Update releaseRuby on Rails Capistrano 更新版本
【发布时间】:2013-07-13 15:14:12
【问题描述】:

我对如何让 Capistrano 进行更新感到困惑。

我已将更改提交给 git。好吧,我会写下我采取的所有步骤。

  1. git commit -a
  2. git 推送 (所有文件已成功推送到远程 git 存储库。所有更改均已记录)
  3. 上限部署

但它没有部署最新版本的网站。

实际上它部署了最旧的版本。

上限部署响应

triggering load callbacks


* 2013-07-13 17:09:08 executing `deploy:update'
 ** transaction: start
  * 2013-07-13 17:09:08 executing `deploy:update_code'
    executing locally: "git ls-remote ssh://ubuntu@54.229.78.34/~/liquid_admin.git master"
    command finished in 3150ms
  * executing "git clone -b master --depth 1 ssh://ubuntu@54.229.78.34/~/liquid_admin.git /home/ubuntu/liquid_admin/releases/20130713150911 && cd /home/ubuntu/liquid_admin/releases/20130713150911 && git checkout -b deploy d609108bf81df3cb558f7536c3cee98d852b4ec5 && git submodule init && git submodule sync && export GIT_RECURSIVE=$([ ! \"`git --version`\" \\< \"git version 1.6.5\" ] && echo --recursive) && git submodule update --init $GIT_RECURSIVE && rm -Rf /home/ubuntu/liquid_admin/releases/20130713150911/.git && (echo d609108bf81df3cb558f7536c3cee98d852b4ec5 > /home/ubuntu/liquid_admin/releases/20130713150911/REVISION)"
    servers: ["54.229.78.34"]
    [54.229.78.34] executing command
 ** [54.229.78.34 :: out] Cloning into '/home/ubuntu/liquid_admin/releases/20130713150911'...
 ** [54.229.78.34 :: out] remote: Counting objects: 276, done.
remote: Compressing objects:   1% (3/239)   
 ** [54.229.78.34 :: out] remote: Compressing objects:   2% (5/239)   
 ** [54.229.78.34 :: out] remote: Compressing objects:   3% (8/239)   
 ** [54.229.78.34 :: out] remote: Compressing objects:   4% (10/239)   
 ** [54.229.78.34 :: out] remote: Compressing objects:   5% (12/239)   
 ** [54.229.78.34 :: out] remote: Compressing objects:   6% (15/239)  

(然后还有更多……)

** [54.229.78.34 :: out] Resolving deltas: 100% (58/58), done.
 ** [54.229.78.34 :: out] Switched to a new branch 'deploy'
    command finished in 5206ms
  * 2013-07-13 17:09:19 executing `deploy:finalize_update'
    triggering before callbacks for `deploy:finalize_update'
  * 2013-07-13 17:09:19 executing `bundle:install'
  * executing "cd /home/ubuntu/liquid_admin/releases/20130713150911 && bundle install --gemfile /home/ubuntu/liquid_admin/releases/20130713150911/Gemfile --path /home/ubuntu/liquid_admin/shared/bundle --deployment --quiet --without development test"
    servers: ["54.229.78.34"]
    [54.229.78.34] executing command
    command finished in 2138ms
  * executing "chmod -R -- g+w /home/ubuntu/liquid_admin/releases/20130713150911 && rm -rf -- /home/ubuntu/liquid_admin/releases/20130713150911/public/system && mkdir -p -- /home/ubuntu/liquid_admin/releases/20130713150911/public/ && ln -s -- /home/ubuntu/liquid_admin/shared/system /home/ubuntu/liquid_admin/releases/20130713150911/public/system && rm -rf -- /home/ubuntu/liquid_admin/releases/20130713150911/log && ln -s -- /home/ubuntu/liquid_admin/shared/log /home/ubuntu/liquid_admin/releases/20130713150911/log && rm -rf -- /home/ubuntu/liquid_admin/releases/20130713150911/tmp/pids && mkdir -p -- /home/ubuntu/liquid_admin/releases/20130713150911/tmp/ && ln -s -- /home/ubuntu/liquid_admin/shared/pids /home/ubuntu/liquid_admin/releases/20130713150911/tmp/pids"
    servers: ["54.229.78.34"]
    [54.229.78.34] executing command
    command finished in 756ms
  * executing "find /home/ubuntu/liquid_admin/releases/20130713150911/public/images /home/ubuntu/liquid_admin/releases/20130713150911/public/stylesheets /home/ubuntu/liquid_admin/releases/20130713150911/public/javascripts -exec touch -t 201307131509.22 -- {} ';'; true"
    servers: ["54.229.78.34"]
    [54.229.78.34] executing command
 ** [out :: 54.229.78.34] find:
 ** [out :: 54.229.78.34] `/home/ubuntu/liquid_admin/releases/20130713150911/public/images'
 ** [out :: 54.229.78.34] : No such file or directory
 ** [out :: 54.229.78.34] 
 ** [out :: 54.229.78.34] find:
 ** [out :: 54.229.78.34] `/home/ubuntu/liquid_admin/releases/20130713150911/public/stylesheets'
 ** [out :: 54.229.78.34] : No such file or directory
 ** [out :: 54.229.78.34] 
 ** [out :: 54.229.78.34] find:
 ** [out :: 54.229.78.34] `/home/ubuntu/liquid_admin/releases/20130713150911/public/javascripts'
 ** [out :: 54.229.78.34] : No such file or directory
 ** [out :: 54.229.78.34] 
    command finished in 767ms
  * 2013-07-13 17:09:23 executing `deploy:create_symlink'
  * executing "sudo -p 'sudo password: ' rm -f /home/ubuntu/liquid_admin/current && sudo -p 'sudo password: ' ln -s /home/ubuntu/liquid_admin/releases/20130713150911 /home/ubuntu/liquid_admin/current"
    servers: ["54.229.78.34"]
    [54.229.78.34] executing command
    command finished in 837ms
 ** transaction: commit

更新

我做了“cap deploy:update”,它更新了一些文件。例如,我的 database.yml 已更新。但是没有新视图、新控制器或新模型……

更新 2

它似乎只更改了我第一次部署期间存在的文件。所以“帖子”和“主页”以及所有这些都发生了变化……但是我之后创建的任何新控制器、模型或视图都没有部署。

【问题讨论】:

  • 你能粘贴 Capistrano 的输出吗?还 git 登录你的远程和本地吗?
  • 没有更多细节,这有点猜测,但如果你在 git 中有多个分支,你应该确保 capistrano 是从正确的分支部署的。这是通过set :branch, 'branch_name' 行完成的。
  • 粘贴了上限输出。我在哪里可以找到 git 日志?在本地还是远程服务器上?

标签: ruby-on-rails-3 git capistrano


【解决方案1】:

Cap deploy 一般是在部署master。。你是不是在不同的分支中做了更改而忘记了合并回来?

【讨论】:

  • 我想我在实时服务器上进行了更改并且没有进行任何合并...我只是认为它创建了一个新版本...但是在我的本地计算机上我总是进行所有更改在与原始文件夹相同的文件夹中。是不是我不应该在实时服务器上进行更改?只在本地制作然后部署?
  • 没错...这可能是问题所在。如果您在服务器上进行更改,请将更改保存到本地副本,然后在服务器上键入 git reset --hard 并使用更新了本地版本,那么一切都应该是正确的......
  • “将更改保存到本地副本”到底是什么意思?您的意思是物理备份我的本地副本,然后在 git 重置后将文件复制回来,然后再次部署?
  • 首先我在本地服务器上做了一个“git reset --hard”(因为远程服务器只是一个裸存储库。)然后我做了一个“git commit -a”告诉我有没有变化,但有未跟踪的文件。所以我做了一个“git add”。添加所有未被跟踪的文件。最后我再次运行“git commit -a”和“git push”。这使用所有新文件更新了我的存储库,然后“cap deploy”按预期运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 2017-07-19
相关资源
最近更新 更多