Tag: capistrano

有没有办法使用capistrano(或类似)远程与rails控制台交互

我很喜欢capistrano如何简化我的部署工作流程,但是经常推送的更改会遇到我需要登录到服务器以通过控制台进行故障排除的问题。 有没有办法使用capistrano或其他远程管理工具与本地终端上的服务器上的rails控制台进行交互? **更新: cap shell似乎很有希望,但是当你尝试启动控制台时它会挂起: cap> cd /path/to/application/current cap> pwd ** [out :: application.com] /path/to/application/current cap> rails c production ** [out :: application.com] Loading production environment (Rails 3.0.0) ** [out :: application.com] Switch to inspect mode. 如果你知道一个解决方法,那就太好了

在亚马逊EC2上使用capistrano进行生产时,资产不会预编译

我致力于使用capistrano部署到生产。 我面临几个问题,在修复大部分问题的同时,我们还有最后一个问题。 我们的预编译资产选项没有在生产中正确编译它们,因此,我们无法使用最后开发的function,因为它们严重依赖JS。 不试图影响任何人如何分析这个问题,这是我尝试使其工作的一些方法: 本地预编译资产,推送到github仓库,从本地机器部署到ec2。 cap deploy是本地的,被推送到ec2的代码是github上的代码。 尝试使用capistrano任务建议。 在Capfile中使用load’debloy’assets’并让cap deploy:setup任务完成它。 使用选项cap deploy:assets:clean然后cap deploy:assets:precompile 尝试从公共中删除资产,然后在deploy.rb中使用pipeline_precompile任务 过期资产,强制rails预编译application.rb中更改assets.versions的所有内容 尝试在environment / production.rb中的config.assets上尝试不同的组合 最后,尝试使用RAILS_ENV =生产包exec rake资产删除生产中的公共/资产并在那里进行预编译:预编译 该应用程序只是没有使用新的JS文件。 如果你在repo或服务器本身检查代码,我在name.js.coffee中引入了一个简单的注释(“显示和隐藏菜单,具体取决于数据库中的数据”,这是在xxx行),这不是生产中编译的assets.js。 这是一个快速测试,以确保最近的资产被使用。 这里的问题是js和css文件,而不是rails。 这就是为什么它如此难以测试或找到..因此最近js框架普及的原因之一。 如果出现问题,你不必自杀,寻找问题所在。如果问题是ruby或铁轨,通常不需要那么长时间才能找到问题。 一旦你获得js,css和跨浏览器兼容性,那么这就是手头的问题。 这是我的deploy.rb文件。 运行轨道3.2.12 ruby​​-1.9.3-p327: # $:.unshift(File.expand_path(‘./lib’, ENV[‘rvm_path’])) # Load rvm’s capistrono plugins require ‘rvm/capistrano’ require ‘bundler/capistrano’ set :rvm_type, :user set :user, ‘username’ set :domain, ‘ip_address’ set :application, “app_pro” […]

Capistrano部署:在资产期间“未识别您的适配器规范”:预编译

我收到这个错误,我认为它来自multi_json gem中的这行代码,但我不够天真,不知道为什么它会被触发?!? 在开发和测试中一切正常,但deploy:assets:update_asset_mtimes任务在cap deploy:migrations失败 有关为什么会发生这种情况的任何提示? 自上次部署以来, multi_json已经恢复,所以可能会尝试回滚到以前的版本,但想知道为什么它失败了…… 血腥细节: $ cap deploy:migrations … * 2013-08-13 15:18:44 executing `deploy:assets:update_asset_mtimes’ * executing “[ -e /path/to/rails/myapp/shared/assets/manifest* ] && cat /path/to/rails/myapp/shared/assets/manifest* || echo” servers: [“railserver”] [railserver] executing command command finished in 888ms ** Updating mtimes for ~16 assets… servers: [“railserver”] ** scp upload # -> /path/to/rails/myapp/TOUCH_ASSETS [railserver] /path/to/rails/myapp/TOUCH_ASSETS * scp […]

Capistrano删除回形针图像

出于某种原因,每当我将所有图像从所有用户中删除时,Capistrano都会删除我数据库中的所有图像。 通常我所做的是必须使用capistrano删除的相同图像重新填充数据库。 我已经附上了我的deploy.rb文件,有人可以给我一些见解。 require “bundler/capistrano” set :rvm_ruby_string, ‘1.9.3p429’ set :rvm_type, :user set :user, “” set :password, “” set :domain, “” set :applicationdir, “” set :scm, :git set :repository, “” set :git_enable_submodules, 1 # if you have vendored rails set :branch, “release” set :rails_env, ‘production’ #set :git_shallow_clone, 1 set :scm_verbose, true # roles (servers) role :web, […]

Capistrano 3资产:预编译需要数小时。 停在css文件

就像它说的那样,我无法让capistrano 3做assets:precompile正确assets:precompile 。 即使在数小时后,它仍然会写入服务器上的.css文件。 更新: 我在玩,我尝试了m1.medium。 同样的事情发生在某个点上它只是停止了预编译。 不抛出错误,光标只是闪烁。 它看起来仍然有效,因为它只是说: 我,[2013-12-31T01:18:45.210416#31413]信息 – :写作/var/www/app/releases/20131231011622/public/assets/application-998b176a776d6aff56fce8af9ca0d861.css 当我从任何实例查看cpu用法时它看起来像这样: 看起来这个过程已经完成,但事实并非如此。 我从零开始创建了一个假应用程序,它使用相同的capistrano设置完美上传。 我正在使用ckeditor,bootstrap-sass和自定义引擎,如果这有所作为。 如果我需要显示任何其他文件,我很乐意在这里添加它们。 谢谢 更新2我让它在m1.medium实例上工作,但它仍然在m1.small或t1.micro实例上失败。 所以我认为它与ssh有关。

cap deploy + rbenv:bundle:找不到命令

我关注https://gorails.com/deploy/ubuntu/16.04 我正在运行:“捆绑exec cap生产部署”并收到以下错误: ✔ 10 deploy@107.170.84.18 0.289s 00:21 bundler:install 01 $HOME/.rbenv/bin/rbenv exec bundle install –path /home/deploy/deploy_test1/shared/bundle –without development test –deployment –q… 01 rbenv: bundle: command not found 01 01 The `bundle’ command exists in these Ruby versions: 01 2.4.0 01 (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as deploy@107.170.84.18: bundle exit […]

在Heroku上的生产中建立外部数据库连接

我正在尝试建立与Heroku上的辅助外部数据库的连接(这是在AWS上运行的PostgreSQL数据库)。 我试图找到最简单和/或最好的方法来做到这一点。 我尝试使用Capistrano任务在部署到Heroku期间复制database.yml文件: after “deploy:update_code”,”deploy:config_symlink” namespace :deploy do task :config_symlink do run “cp #{shared_path}/shared/config/database.yml #{release_path}/config/database.yml” end end 我尝试通过Heroku配置变量建立连接: class Pgdb ENV[‘PG_ADAPTER’], :database => ENV[‘PG_DB’], :username => ENV[‘PG_USER’], :password => ENV[‘PG_PW’], :host => ENV[‘PG_HOST’] ) self.abstract_class = true self.table_name = ‘test’ def self.getCardInfo(card_name) get = connection.query(“SELECT * FROM test) get end end 我找不到任何有意义的文档或告诉我如何做到这一点。 我不知道在上述尝试中我是否接近或离开了。 我正在寻找解决上述尝试或任何其他解决方案的解决方案。

生产环境变量

我目前正在亚马逊上部署我的Rails应用程序,我遇到了环境变量的问题。 我在开发和测试中使用dotenv gem,它在尝试访问我的环境变量时工作正常,但在生产中它似乎不起作用。 我读到dotenv gem并不适用于制作。 我必须设置近20个不同的环境变量,包括API密钥等,我正在使用rubber / capistrano进行部署。 我怎样才能以干净的方式工作?

shared_children在Capistrano 3工作

我在deploy.rb有以下deploy.rb : set :upload_dirs, %w(public/pictures) set :shared_children, (fetch(:shared_children) || []) + fetch(:upload_dirs) 这似乎是允许我共享公共目录的建议方法。 public/pictures目录存在,并在存储库中以空方式检查。 我试图在存储库中也没有它,但它无论如何都没有用。 当我使用capistrano进行部署时,我看不到public/pictures目录出现在我的部署位置的任何位置。 此function是否已从Capistrano 3中删除? Capistrano 3是否有明确的文档来源? 我能找到的全部是Capistrano 2文档和v3非常稀缺的信息来源。

使用Capistrano进行部署时,Rails 5控制台无法正常工作

我正在使用Rails 5,我已经通过Capistrano在服务器上部署了我的应用程序。 由于特定需要loadchema,我ssh in和cd到release / ###目录并尝试运行 rails –version#出来5.0.3beta 捆绑#工作,一切安装 rails c#但是失败了 运行rails db:migrate也失败了。 它似乎返回rails通用帮助,因为我的目录不是rails目录。 我尝试删除bin文件夹,但仍然相同。 有谁知道什么可能是错的? 谢谢