使用Rails 3.0.7和git,用capistrano进行部署。 我使用不同的机器作为Web和应用程序服务器。 我无法将应用程序代码部署到Web服务器,只有静态资产 – 基本上是公共/文件夹。 这似乎很普遍,但没有运气寻找最佳做法。 围绕capistrano处理这个案件有什么build立吗? 否则,我想添加任务来创build结构,但从应用程序服务器scp公共目录将是解决scheme。
我一直在为在nginx后面运行的rails应用程序设置多个云端点来修改页面加载时间。 基本上 – 我们之前build立了一个端点似乎工作正常,但是当我使用下面的asset_host声明添加到第二个端点时: config.action_controller.asset_host = Proc.new do |source| hosts = ["https://url1.cloudfront.net", "https://url2.cloudfront.net"] hosts[source.hash % 2] end 每当我部署(使用一个漂亮的香草capistrano部署脚本),一些资产不加载 – cloudfrontcachingnginx 404页面。 如果我使cloudfront的caching无效,资产全部加载正常。 capistrano脚本本身在重新启动独angular兽前进行编译,因此不应该使用引用新资产文件名的html,但是,在部署之后,cloudfront会立即caching404s。 我确实无法在每次部署之后使云端caching失效,这需要很长时间。 有没有人遇到过这个问题? 任何build议如何解决这个问题?
我有一个这样的情景,我想用capistrano来部署我的ruby在rails应用程序: Web应用程序位于/ etc / thin下的configuration文件的瘦集群上。 init脚本也在/etc/init.d/thin中,所以只要我的服务器需要重启就会自动启动 同样,nginx也是以相同的方式执行的(和init脚本守护进程一样) 为了确保万一有人攻击我的networking服务器,我不希望他们做太可怕的事情,所以networking用户不能sudo。 Thin和nginx都以web用户身份运行,以执行此类安全性 现在,当我需要部署时,我需要将文件安装在/ home / webuser / railsapps / helloworld下,然后我需要cap script重新启动我的瘦客户机。 我想保留所有由webuser拥有的文件,所以cap script主用户以webuser的身份运行。 现在,当我想重新启动瘦守护程序时,会出现问题,因为webuser无法sudo。 我想如果有可能调用两个单独的会话webuser文件部署,然后一个特殊的sudoer重新启动守护进程。 任何人都可以给我一个这样的示例脚本?
现在我试图将我的Ruby on Rails应用程序部署到运行Ubuntu的Windows Azure上的虚拟机,但是我可以修复de set环境variables错误,如下所述。 我已经添加了variables到我的.bashrc ,现在在/etc/environment但是错误是一样的: App 1227 stderr: [ 2015-10-06 04:10:57.3814 1352/0x9020d38(Worker 1) utils.rb:86 ]: *** Exception RuntimeError in Rack application object (Missing `secret_to$ App 1227 stderr: from /home/deploy/apps/matching_people/shared/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/application.rb:534:in `validate_secret_$ App 1227 stderr: from /home/deploy/apps/matching_people/shared/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/application.rb:246:in `env_config' App 1227 stderr: from /home/deploy/apps/matching_people/shared/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/engine.rb:514:in `call' App 1227 stderr: from /home/deploy/apps/matching_people/shared/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/application.rb:165:in `call' App 1227 stderr: from /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:94:in […]
我正在尝试像这样部署: bundle exec cap deploy:cold RAILS_ENV=production rake db:migrate bundle exec cap deploy:migrate 但一直在日志文件中显示错误: I, [2014-04-14T14:15:14.853543 #10769] INFO — : Started GET "/users/sign_up" for 176.192.228.14 at 2014-04-14 14:15:14 -0400 I, [2014-04-14T14:15:14.856055 #10769] INFO — : Processing by Devise::RegistrationsController#new as HTML I, [2014-04-14T14:15:14.857398 #10769] INFO — : Completed 500 Internal Server Error in 1ms F, [2014-04-14T14:15:14.860844 #10769] […]
我有两个Rails4-应用程序设置在我的服务器与Capistrano 2.15,独angular兽和Nginx。 当我做cap:deploy ,我得到这个错误: executing "/etc/init.d/unicorn_myapp1 restart" servers: ["123.45.678.910"] [123.45.678.910] executing command ** [out :: 123.45.678.910] Couldn't reload, starting 'cd/home/deployer/apps/myapp1/current; bundle exec unicorn -D -c /home/deployer/apps/myapp1/current/config/unicorn.rb -E production' instead ** [out :: 123.45.678.910] ** [out :: 123.45.678.910] master failed to start, check stderr log for details command finished in 1845ms failed: "rvm_path=$HOME/.rvm $HOME/.rvm/bin/rvm-shell 'ruby-2.0.0-p353' -c […]
我试图部署到一个树莓派使用Capistrano 3.0 /薄/ NGINX我已经得到它的工作,但在我重新启动块我有 namespace :deploy do desc 'Restart application' task :restart do on roles(:app), in: :sequence, wait: 5 do execute '/etc/init.d/thin restart' execute 'sudo /etc/init.d/nginx restart' end end end 我很满足于此 INFO [128fb9a3] Running /etc/init.d/thin restart on raspberrypi.local DEBUG [128fb9a3] Command: /etc/init.d/thin restart DEBUG [128fb9a3] /usr/bin/env: DEBUG [128fb9a3] ruby_executable_hooks DEBUG [128fb9a3] : No such file […]
Thin的独特function看起来很酷,但是导致我的部署失败。 ** [out :: 97.107.141.165] Stopping server on 127.0.0.1:3000 … ** [out :: 97.107.141.165] Sending QUIT signal to process 2515 … ** [out :: 97.107.141.165] >> Exiting! ** [out :: 97.107.141.165] Starting server on 127.0.0.1:3000 … ** [out :: 97.107.141.165] Waiting for server to start … ** [out :: 97.107.141.165] /home/deploy/iamthewalrus/shared/bundle/ruby/1.9.1/gems/thin-1.2.11/lib/thin/controllers/cluster.rb:106:in `block in wait_until_server_started': The […]
我有一个在AWS EC2实例上运行Ruby应用程序的Puma服务器。 它工作很好,但是我发现它在几个小时后发生了502个错误。 该应用程序部署与capistrano。 一个简单的重启美洲狮暂时解决了这个问题,但我想阻止它再次发生。 不太确定先试一下。 这是我的capistrano美洲狮configuration: set :puma_rackup, -> { File.join(current_path, 'config.ru') } set :puma_state, "#{shared_path}/tmp/pids/puma.state" set :puma_pid, "#{shared_path}/tmp/pids/puma.pid" set :puma_bind, "unix://#{shared_path}/tmp/sockets/puma.sock" set :puma_conf, "#{shared_path}/puma.rb" set :puma_access_log, "#{shared_path}/log/puma.error.log" set :puma_error_log, "#{shared_path}/log/puma.access.log" set :puma_role, :app set :puma_env, fetch(:rack_env, fetch(:rails_env, 'production')) set :puma_threads, [0, 8] set :puma_workers, 0 set :puma_worker_timeout, nil set :puma_init_active_record, true set :puma_preload_app, […]
我已经将Capistrano的Rails应用程序部署到了VPS,当我尝试使用“APP_NAME.com”访问它时,我看到标准的Nginx的“It works!”。 页。 我试图从/var/www文件夹中删除index.html文件,现在我看到它的文件夹: apps , log和tmp 。 在nginx.conf我有: user nginx web; pid /var/run/nginx.pid; error_log /var/www/log/nginx.error.log; events { worker_connections 1024; accept_mutex off; use epoll; } http { include mime.types; types_hash_max_size 2048; server_names_hash_bucket_size 64; default_type application/octet-stream; access_log /var/www/log/nginx.access.log combined; sendfile on; tcp_nopush on; # off may be better for *some* Comet/long-poll stuff tcp_nodelay off; # on […]