Tag: 部署

使用USR2重新启动Unicorn似乎不会重新加载production.rb设置

我正在运行独角兽,我正试图让零停机重启工作。 到目前为止,这是一个非常棒的酱油,主要的过程分叉和启动4个新工人,然后杀死旧的,每个人都很高兴。 我们的脚本发送以下命令来重启unicorn: kill -s USR2 `cat /www/app/shared/pids/unicorn.pid` 从表面上看,一切看起来都很棒,但事实certificate,独角兽并没有重新加载生产.rb。 (每次部署时,我们将config.action_controller.asset_host值更改为新的CDN容器端点,其中包含预编译的资产)。 以这种方式重新启动独角兽之后,资产主机仍然指向旧版本。 进行真正的重启(即:停止主进程,然后从头开始再次启动独角兽)选择新的配置更改。 preload_app在我们的unicorn配置文件中设置为true 。 有什么想法吗?

在Capistrano 3中永久切换用户(单独授权和部署)

我们在服务器管理中有以下模式 – 所有用户都有自己的用户,但部署完全由特殊部署用户执行,没有直接登录的可能性。 我们在Capistrano 2.x中使用了这种方法: default_run_options[:shell] = “sudo -u deploy bash” $ cap stage deploy -s user=thisisme 我知道Capistrano 3.x有直接切换用户的方法: task :install do on roles(:all) do as :deploy do execute :whoami end end end 但是此代码将填充所有任务,并且默认任务无论如何都不会inheritance部署用户。 是否可以直接设置登录用户而无需将此代码拖到每个任务中?

在MRI Ruby / JRuby上为企业客户模糊Rails应用程序

对于将在其服务器上运行我们的Rails应用程序的企业客户,我们不希望向他们提供Rails应用程序的源代码。 使用MRI Ruby甚至JRuby可以: 模糊源代码 在JRuby的情况下,将Rails应用程序变为.jar / .war(因此它是混淆的和字节码) 在MRI Ruby的情况下,将Rails应用程序打包到EXE中 有关这是否可能的任何想法?

Heroku推送被拒绝,Ruby Version Changed Detected,找不到net-scp-1.0.6

我无法弄清楚这里发生了什么。 我周二部署到Heroku没有问题。 我没有在本地或在Gemfile上更改我的Ruby版本,但是heroku告诉我我已经更改了Ruby版本并且它无法找到net-scp-1.0.6。 一切都在本地完美运作,我搜索周围,找不到解决类似问题的任何事情。 Counting objects: 81, done. Delta compression using up to 4 threads. Compressing objects: 100% (62/62), done. Writing objects: 100% (62/62), 10.77 KiB, done. Total 62 (delta 49), reused 0 (delta 0) —–> Deleting 8 files matching .slugignore patterns. —–> Removing .DS_Store files —–> Ruby/Rails app detected —–> Using Ruby version: ruby-1.9.3 […]

使用自定义域部署到Heroku

我从My-app.heroku.com运行了应用程序并且它可以工作,我在我的域之间设置了DNS,但每当我从我指定的域打开我的应用程序时,heroku说“请参阅文档,如果你需要帮助部署。“ 我已经看了几次文档,但是我没理解。 我错过了什么步骤?

安装mysql的Rails – 安装mysql2时出错:错误:无法构建gem原生扩展

我有一个Rails 3.2.13应用程序,我想部署,但托管服务将需要MySQL,而不是我一直在使用的sqlite。 在从sqlite转换为MySQL的过程中,我不得不安装ruby gem mysql2 ,它在安装时给出了以下错误: 安装mysql2时出错:错误:无法构建gem原生扩展。 我已经尝试了bundle install ,以及gem install mysql2 ,但出现了相同的错误消息。 我知道对许多人sudo apt-get install libmysql-ruby libmysqlclient-dev的解决方案是sudo apt-get install libmysql-ruby libmysqlclient-dev ,但是我在Windows上使用Git Bash,所以我发现了Windows等价物(@ francois对这个问题的回答)。 我使用安装程序安装了MySQL Server 5.6 ,并运行以下命令: gem install mysql2 — ‘–with-mysql-lib=”c:\Program Files\MySQL\MySQL Server 5.6\lib” –with-mysql-include=”c:\Program Files\MySQL\MySQL Server 5.6\include”‘ 根据我的阅读,这应该成功安装’mysql2’ruby gem。 但奇怪的是,我仍然有以下错误: Temporarily enhancing PATH to include DevKit… Building native extensions with: ‘–with-mysql-lib=”c:\Program […]

是否可以在不重新编译的情况下更改Passenger Ruby版本?

我尝试将默认的ruby命令更改为1.9.2,但Passenger一直运行1.8.7 Passenger是用嵌入式Ruby编译的吗?

在推送到heroku之后,我的大多数资产突然返回404

我已经部署了这个应用程序(rails 3.2.11)一百万次了,我没有搞乱任何设置,但现在我受到了欢迎: 为什么这发生在蓝色之外? 我的application.rb包括config.assets.enabled = true – 从来没有任何问题。 事实上,在端口3000上本地运行它似乎没有任何问题。 在今天早上部署到heroku之后,它似乎没有加载内部/ assets / 有趣的是,在复制文件以尝试并创建一个新应用程序后, git commit产生您期望的所有内容,以及我认为可能与之相关的LONG列表: 编辑:有趣的是,一些资产已经加载,如徽标和背景,但其余的,你可以看到返回404。

Rails – 部署后无效的真实性令牌

我们使用EngineYard Cloud来部署我们的Ruby on Rails应用程序。 我们正在运行Rails v2.3.3。 EngineYard Cloud以类似于Capistrano的方式部署到AWS实例。 每次部署后,我们都会遇到无效的真实性令牌错误。 具体而言,任何先前访问过我们的应用程序然后在部署后访问然后尝试提交表单的用户都会收到无效的真实性令牌错误。 在重置网站的Cookie之前,此错误仍然存​​在。 重置cookie后,该站点按预期工作,没有错误。 我们正在使用ActiveRecord的会话存储,会话正在保存到数据库中。 这是我们看到的错误: ActionController :: InvalidAuthenticityToken /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_controller/request_forgery_protection.rb:79:in,check_authenticity_token’ 部署后会话对象为nil,但会话数据仍然存在于数据库中,并且会话ID cookie仍然存在: 会议: 会话ID:无 数据:无 我们无法解释这一点。 关于什么可能是根本原因的任何想法? 谢谢你的任何建议! 编辑:为了更新这一点,我们已经能够找出错误的一个例子。 1)用户加载表2)代码在服务器上更新3)用户提交表单**发生无效的真实性令牌错误 似乎当环境发生变化时,Rails无法使用真实性令牌处理此问题。 我们已经尝试了几个步骤来解决: 重置会话 删除会话cookie(包括JavaScript和Rails) 部署代码后擦除数据库中的会话表 什么都行不通。 唯一有效的方法是让用户清除客户端的cookie。 (我们一直在谷歌搜索(甚至试过Binging!)寻找答案,但没有骰子。这似乎是一个类似的相关问题: http ://railsforum.com/viewtopic.php?id = 21479) 另外:最初我们认为这与我们对EngineYard的部署是隔离的,但我们也能够在我们通过Capistrano部署的开发服务器上重现它。 任何想法都会被感激地接受。 谢谢!

如何在VagrantFile中包含变量?

任何人都可以指导我如何在我的VagrantFile中包含变量? 我试图从外部文件将配置注入Vagrantfile,这样我就可以将配置分发给我的同事,而无需直接在Vagrantfile上硬编码配置。 我曾经想过,因为它是基于Ruby的我可以只包含一个Ruby文件,但是我得到一个错误消息:unintialized constant MyVars 我的VagrantFile简化了 # -*- mode: ruby -*- # vi: set ft=ruby : require ‘vagrant.rb’ include MyVars Vagrant.configure(“2”) do |config| # Web config.vm.define :joe do |joe| joe.vm.box = “precise64_4.2.12” joe.vm.hostname = WEBVMNAME joe.vm.network :private_network, ip: “192.168.140.141” # Port Forwarding joe.vm.network :forwarded_port, guest: 22, host: 2201 joe.vm.network :forwarded_port, guest: 80, host: 8080 # […]