【问题标题】:Why is Capistrano deploying my project in "development" environment?为什么 Capistrano 在“开发”环境中部署我的项目?
【发布时间】:2015-01-27 20:46:54
【问题描述】:

我为我的 capistrano 配置设置了以下文件。当我使用以下命令部署我的项目时,它会部署到服务器,但 Rails.env 设置为“部署”。如何将其正确设置为“生产”?

部署命令

cap production deploy

deploy.rb

set :application, 'project'
set :repo_url, 'git@github.com:AccountName/project.git'
set :deploy_to, '/home/deploy/project'

set :linked_files, %w{config/database.yml}
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}

namespace :deploy do

  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      execute :touch, release_path.join('tmp/restart.txt')
    end
  end

  after :publishing, 'deploy:restart'
  after :finishing, 'deploy:cleanup'
end

config/deploy/production.rb

set :stage, :production
set :branch, 'master'
set :rails_env, 'production'

server '127.0.0.1:4400', user: 'deploy', roles: %w{web app}

nginx.conf

server {
    listen 80;
    server_name ip_address;
    rails_env production;
    root /path/to/app/public;
    passenger_enabled on;
}

网站可用/项目

server {
   listen 80 default_server;
   server_name ip_address;
   passenger_enabled on;
   root /path/to/app/public;
}

【问题讨论】:

  • 您的应用运行情况如何(乘客、独角兽等)?
  • nginx & 乘客 我曾经按照以下文章设置...digitalocean.com/community/tutorials/…
  • 所以在你提到之后发现了问题.. nginx 中有一个设置如下:passenger_app_env development ... 编辑:好吧,我认为它修复了它,但它仍然说它正在开发中。我正在检查重新启动,但我认为我的部署命令已经重新启动它......
  • 您的部署没有重新启动 nginx 本身
  • 我在任务重启中添加了service nginx restart。我还登录到服务器并在那里运行它。仍在获取开发环境。除了可用的站点之外,是否还有其他位置仍将乘客应用程序环境设置为开发?

标签: ruby-on-rails ruby capistrano production-environment


【解决方案1】:

问题是passenger_app_env 正在开发中。我无法弄清楚哪些服务没有重新启动,所以我重新启动了服务器。这提出了一些其他问题,但我相当确定通过将该变量更改为passenger_app_env production 解决了问题。感谢您的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    相关资源
    最近更新 更多