我不确定我的问题是否相关,因为我可能会尝试混合不应混合的工具(Capistrano和Docker)。我最近对一个使用Capistrano部署的应用程序进行了docker化。Dockercompose用于开发和登台环境。这是我的项目的样子(未显示应用程序文件):Capfiledocker-compose.ymldocker-compose.staging.ymlconfig/deploy.rbdeploystaging.rbDockerCompose文件创建了所有必要的容器(Nginx、PHP、MongoDB、Elasticsearch等)以在开发或暂存环境中运行应用程序(因此在dock
我正在寻找一个不错的Capistrano小菜谱,用于部署在Git中控制版本的站点。除了我正在努力添加的其他一些东西之外,我的第一个任务是用当前日期标记当前版本...并且当该标记已经存在时(例如一天内有多个版本),附加一个字母.我已经编写了一些工作代码,并在我的production.rb中测试了它(在capistrano-ext中使用多阶段)...但我不得不认为我可以把它写得更好。其一,在实际检查标签是否存在的过程中存在大量重复。但是,无论我以何种顺序移动事物,这都是产生结果的唯一配置。有什么想法吗?提前致谢。before'deploy'do#Tagnameisbuild_YYYYMMD
我已经定义了一个应该在本地(在我的开发机器上)运行的自定义Capistrano任务:desc"PushcodetoDreamhost"task:pushdorun"gitpushdreamhost"end然而,当我尝试运行cappush时,它会在远程机器上执行,即。*executing`push'*executing"gitpushdreamhost"servers:["ec2-999-99-999-999.compute-1.amazonaws.com"]我如何让它在本地执行? 最佳答案 或者使用run_locally使用Capi
我的主分支布局是这样的://client/server我想做的只是pull下我的deploy.rb中的/server目录,但我似乎找不到任何方法来做到这一点。/client目录很大,所以设置一个钩子(Hook)将/server复制到/不会很好,它只需要pull下Rails应用程序。 最佳答案 没有任何肮脏的forkAction,但更肮脏!在我的config/deploy.rb中:set:deploy_subdir,"project/subdir"然后我将这个新策略添加到我的Capfile中:require'capistrano/re
我正在使用capistrano部署RoR应用程序。代码库位于git存储库中,分支在开发中被广泛使用。Capistrano使用deploy.rb文件作为其设置,其中之一是要部署的分支。我的问题是:假设我从master创建了一个新分支A。部署文件将引用master分支。我对其进行编辑,以便可以将A部署到测试环境。我完成了该功能的工作,并将分支Amerge到master中。由于A中的deploy.rb文件较新,因此将其merge到master中的deploy.rb>分支引用A。是时候再次编辑了。大量看似不必要的手动编辑-参数应始终与当前分支名称相匹配。最重要的是,很容易忘记每次都编辑设置。自
我第一次尝试在ubuntu服务器上部署我的应用程序。我一直遇到这个错误:2013-03-2415:13:36executing`deploy:run_migrations'*executing"rvmgemsetusevapin"servers:["111.111.111.11"][111.111.111.11]executingcommand**[out::111.111.111.11]**[out::111.111.111.11]**[out::111.111.111.11]RVMisnotafunction,selectingrubieswith'rvmuse...'willno
我使用Capistranov3和capistrano/symfonygem设置了以下部署脚本。我正在使用Ubuntu14.4部署到AWSEC2实例我正在连接从AWS下载的.pem文件。我的deploy.rb中有以下内容set:pty,trueset:ssh_options,{user:'ubuntu',keys:['/Users/myuser/Sites/Myproject.pem'],forward_agent:true,auth_methods:["publickey"]}部署时bundleexeccapstagingdeploy--trace脚本连接正常但失败INFO[4fd1b
我有一个Capistrano部署脚本,它已经工作了一段时间,但现在它在部署时抛出了这样的错误:/Users/lifecoder/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/psych.rb:203:in`parse':():controlcharactersarenotallowedatline1column1(Psych::SyntaxError)from/Users/lifecoder/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/psych.rb:203:in`parse_stream'from/U
我从thistutorial中获取的deploy.rb文件中包含以下内容除了touch命令外,一切都正常工作。有谁知道为什么这可能不起作用?set:application,"your-application-name"set:repository,"git@github.com:you/your-project.git"set:scm,:gitset:deploy_to,"/home/path/to/project/"set:use_sudo,falseset:deploy_via,:remote_cacheset:copy_exclude,[".git",".DS_Store",".
我正在使用普通的capistrano来部署一个用node编写的简单集群。我定义的角色如下:role:boss,"bosshost"role:worker,{get_worker_hosts}我正在使用capistrano的默认部署舞蹈+自己的任务将worker应用程序放在服务器上。问题是我不想为boss做任何事情,因为它只是一个脚本。理想情况下,这样做:namespace:bosstask:update,:roles=>[:boss]upload'boss.js',"#{boss_home}/boss.js"endtask:restart,:roles=>[:boss]run"fore