Questions tagged «capistrano»

Capistrano是用于部署Web应用程序的开发人员工具。它通常安装在工作站上,用于将代码从源代码管理(SCM)部署到一个或多个服务器。

15
您首选的php部署策略是什么?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在用PHP开始一个新项目,很想从其他开发人员那里获得一些有关他们首选的PHP部署策略的反馈。我想稍微自动化一些事情,以便一旦提交更改,便可以将它们快速迁移到开发或生产服务器。 我有使用Capistrano和Ruby进行部署以及一些基本的shell脚本的经验。 在我独自潜水之前,很高兴听到其他人在他们的项目中是如何做到这一点的。 更多信息 当前,开发人员致力于站点的本地安装,并将更改提交到Subversion存储库。通过从svn导出标记的发行版并将其上传到服务器来进行初始部署。 通常,通过手动上传更改的文件来逐步进行其他更改。

4
Capistrano-清理旧版本
通常,在使用capistrano时,我会去手动从已部署的应用程序中删除旧版本。我了解您可以运行,cap deploy:cleanup但仍然有5个版本。这是预期的目的吗?还有另一种方法可以将旧版本清除到仅1个以前的部署中吗?
125 capistrano 

13
使用capistrano从不同的git分支进行部署
我正在使用capistrano部署RoR应用程序。代码库位于git存储库中,分支在开发中被广泛使用。Capistrano使用deploy.rb文件进行设置,其中之一就是要从中进行部署的分支。 我的问题是这样的:比方说,我创建了一个新的分支一个从主。部署文件将引用master分支。我对此进行了编辑,因此可以将A部署到测试环境。我完成了该功能,然后将分支A合并到master中。由于deploy.rb从文件一个是新鲜的,它被合并了,现在deploy.rb在主分支引用一个。是时候再次编辑了。 这似乎是很多不必要的手动编辑-参数应始终与当前分支名称匹配。最重要的是,很容易忘记每次都编辑设置。 自动化此过程的最佳方法是什么? 编辑:原来有人已经完全按照我的需要做了: 今天早上,我有机会将git仓库的一个分支部署到一个登台服务器,但是却没有一个最模糊的主意。快速浏览capistrano源代码显示,我可以:branch "branch_name"在部署脚本中使用set 。我尝试了一下,它奏效了。然后,我认为我需要在所有分支机构中进行类似的更改。当然,我是一个懒汉,想知道是否有更好的方法。 如果您不熟悉git,则git branch命令的输出是分支列表,其中带有星号标记当前在本地计算机上签出的分支。例如: > git branch * drupal_authentication fragment_caching master 因此,我想到了,如果我只是解析输出并搜索标记为current的分支,该怎么办: set :branch, $1 if `git branch` =~ /\* (\S+)\s/m 现在,我可以通过一个共享的部署脚本在本地计算机上部署当前的任何分支。
125 git  capistrano 

16
我如何从Capistrano运行抽佣任务?
我已经有一个deploy.rb,可以将我的应用程序部署到生产服务器上。 我的应用程序包含一个自定义的rake任务(lib / tasks目录中的.rake文件)。 我想创建一个上限任务,该任务将远程运行该rake任务。
105 ruby  rake  capistrano 

6
Capistrano错误tar:这看起来不像tar存档
INFO [050fe961] Running mkdir -p /home/rails/rails- capistrano/releases/20140114234157 on staging-rails DEBUG [050fe961] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh mkdir -p /home/rails/rails-capistrano/releases/20140114234157 ) INFO [050fe961] Finished in 0.142 seconds with exit status 0 (successful). INFO [2dea2fe5] Running git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 on staging-rails DEBUG [2dea2fe5] Command: …

2
Capistrano中的“角色”到底是什么?
Capistrano配方中“角色”的目的和功能是什么?当我查看示例食谱时,经常会看到类似以下内容: role :app, 'somedomain.com' role :web, 'somedomain.com' role :db, 'somedomain.com', :primary => true 因此,角色似乎基本上是Capistrano执行命令的服务器。如果是这样,那么为什么将其称为“角色”而不是“主机”或“服务器”? 在上面的示例中,:app和:web角色有什么区别? 该:primary => true选项有什么作用?

19
Bundler:更改Gemfile后,您尝试以部署模式安装
我对捆扎机和capistrano还是很陌生,我正在尝试将它们一起使用。当我尝试部署时,我收到消息: 更改Gemfile后,您尝试以部署模式安装。在其他地方运行“捆绑安装”,然后将更新的Gemfile.lock添加到版本控制中。 我不知道如何使投诉的系统满意,并且我不明白为什么会提出投诉,因为我在doc中阅读过: 如果确实存在Gemfile.lock,并且您已经更新了Gemfile(5),则捆绑程序将对所有未更新的gem使用Gemfile.lock中的依赖关系,但将重新解析已更新的gem的依赖关系。您可以在下面的“保守更新”中找到有关此更新过程的更多信息。 我将其解释为意味着Bundler可以处理我的Gemfile超出预期的事实。有什么帮助吗? 规格:部署到Posix机器上的Ruby 1.9.3,Rails 3.2.3,Capistrano 2.12.0,Bundler 1.1.4,Windows 7。 编辑:我的Gemfile包含如下逻辑块: unless RbConfig::CONFIG['host_os'] === 'mingw32' # gem 'a' ... end

19
捆绑器为什么不安装JSON gem?
尝试运行时出现以下错误cap production deploy。 DEBUG [dc362284] Bundler::GemNotFound: Could not find json-1.8.1.gem for installation DEBUG [dc362284] An error occurred while installing json (1.8.1), and Bundler cannot continue. DEBUG [dc362284] Make sure that `gem install json -v '1.8.1'` succeeds before bundling. 可能需要注意的是,此部署正在运行,而不是我升级到Ruby 2.1.0来消除编码错误。我在本地升级,效果很好。我跑rvm install 2.1.0,并rvm use 2.1.0随后改变了我的.ruby-version文件,以反映该红宝石升级。 该bundle install命令在本地工作,但是当我SSH到目标服务器并运行此命令时,会产生与上述相同的错误。 如果我跑步,gem list我可以在宝石列表中看到它。 ... jquery-rails …


5
如何在Ubuntu中使用gems?
我最近升级到Ubuntu 9.04,使用gem时遇到问题。我使用apt-get安装了Ruby,Rubygems和Rails。该rails命令确实起作用。 然后,我安装了capistrano和其他宝石,例如heroku。为了做到这一点,我使用了以下命令: sudo gem install XXX 当我想使用cap命令不起作用时: bash: cap: command not found 与其他gem命令相同。 我有什么特别的事情可以执行gem命令吗?

10
更改存储库URL后,Capistrano部署失败
我从Git仓库通过capistrano进行了简单部署。最初,我是从GitHub部署的,一切正常。但是后来我将存储库移至BitBucket,现在我得到了 fatal: Could not parse object '9cfb...'. 我换衣服后问题就消失了 set :deploy_via, :remote_cache 至 set :deploy_via, :copy 但这不能解决问题,只能绕过它。有什么办法可以告诉Capistrano删除旧的缓存?

13
getaddrinfo:提供的节点名或服务名,或者未知
我有一个Ruby on Rails应用程序,正在部署在运行Mac OS X 10.6的计算机上。出现问题的代码是由delay_job运行的。仅当它通过delay_job运行时,才会出现此问题。如果我在控制台(rails console production)中运行它,或者直接通过cURL调用API,它就可以正常工作。而且,整个过程在我的开发环境中都可以正常工作。 基本上,代码在一个地方工作,但是由于某种原因,它在必须工作的地方失败。我已经搜索并找到了一些资源,但是没有任何建议适用或有所作为。当我登录服务器并运行命令时,一切正常。但是由于某些原因,当Capistrano运行/启动它们时,它不起作用。 任何帮助是极大的赞赏。 重要笔记: Ruby版本:1.9.2-p0 Rails版本:3.0.1 delay_job版本:最新(来自collectionidea / delayed_job) 其余客户端版本:1.6.1 码: class CallApi < Struct.new(:num) def perform log "Entering perform" apinum = num || 5 log "ApiNum = #{apinum}" results = attempt(2,10) do ActiveSupport::JSON.decode(RestClient.get(API_URL, {:params => {:apinum => apinum}})) end log "Results retrieved. …

11
在Capistrano中部署Git子目录
我的主分支布局是这样的: / <-顶层 / client <-桌面客户端源文件 / server <-Rails应用 我想做的只是在我的目录中拉/ server目录deploy.rb,但是我似乎找不到任何方法。/ client目录很大,因此设置一个将/ server复制到/的钩子将无法很好地工作,它只需要拉下Rails应用程序即可。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.