`
clark1231
  • 浏览: 255237 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Deploy Rails App With Mina

阅读更多

原文请见我另外一个博客:http://caok1231.com/blog/2013/03/20/deploy-rails-app-with-mina/

 

capistrano是使用的最多的部署工具,最近社区中不少人开始推荐mina,试着用了下部署的速度的确快了很多。虽然mina最近两个月都没有更新,不过仍然希望这个项目能得到很好的发展。

 

下面简单总结下使用mina简单部署rails应用的过程。

 

1.安装mina

Gemfile中

group :development do

  gem 'mina', :git => 'git://github.com/nadarei/mina.git'

end

使用mina 0.2.1的时候可能会出现Mina hangs after entering SSH password, 而0.2.0的版本没有这个问题,但为了使用最新的版本可以直接从原项目中取(这样的话在执行mina命令时要加上bundle exec).

 

2.初始化mina

bundle

bundle exec mina init

它将创建部署文件config/deploy.rb

 

3.创建你的服务器

$ ssh username@your.server.com

 

# Once in your server, create the deploy folder:

~@your.server.com$ mkdir /var/www/foobar.com

~@your.server.com$ chown -R username /var/www/foobar.com

这样可以避免部署时出现的sudo的错误

 

4.配置mina

config/deploy.rb

require 'mina/bundler'

require 'mina/rails'

require 'mina/git'

require 'mina/rbenv'  # for rbenv support. (http://rbenv.org)

# require 'mina/rvm'    # for rvm support. (http://rvm.io)

 

set :domain, 'foobar.com'                 # 设置你的ip地址或域名

set :deploy_to, '/var/www/foobar.com'     # 设置部署的路径

set :repository, 'git://...'              # git地址

#set :repository, File.expand_path('../../.git/', __FILE__)  #直接取本地的git项目

set :branch, 'master'                     # 确定代码分支

 

# 设置需要共享的文件

set :shared_paths, ['config/database.yml', 'log', 'tmp']

 

# 可选设置

set :user, 'foobar'    # SSH 用户名.

# set :port, '30000'   # SSH 端口,默认22.

 

# 设置对于大多数的命令(mina deploy或mina rake)都需要预先加载的环境

task :environment do

  # 如果使用的是rbenv,这么设置,但需确保.rbenv-version(rbenv local 1.9.3-p374)已经存在于你的项目中

  invoke :'rbenv:load'

 

  # 如果使用rvm,可以这样加载一个RVM version@gemset

  # invoke :'rvm:use[ruby-1.9.3-p374@default]'

end

 

# mina setup 时会执行的操作

task :setup => :environment do

  queue! %[mkdir -p "#{deploy_to}/shared/log"]              # 创建日志目录

  queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/log"]      # 设置日志目录权限

 

  queue! %[mkdir -p "#{deploy_to}/shared/config"]           # 创建配置目录

  queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/config"]   # 设置配置目录权限

 

  # 生成服务器的database.yml

  queue! %[cd #{deploy_to}/shared && git archive --remote=#{repository} #{branch} config | tar -x config/database.yml]

end

 

# 进行mina deploy会进行的操作

desc "Deploys the current version to the server."

task :deploy => :environment do

  deploy do

    # Put things that will set up an empty directory into a fully set-up

    # instance of your project.

    invoke :'git:clone'

    invoke :'deploy:link_shared_paths'

    invoke :'bundle:install'

    invoke :'rails:db_migrate'

    invoke :'rails:assets_precompile'

 

    to :launch do

      queue 'touch tmp/restart.txt'

    end

  end

end

 

5.服务器目录初始化

bundle exec mina setup

也可以这样操作,使提示更加详细些

bundle exec mina setup --verbose

6.进行项目部署

bundle exec mina deploy

查看其他命令

mina tasks

 

原文请见我另外一个博客:http://caok1231.com/blog/2013/03/20/deploy-rails-app-with-mina/

 

分享到:
评论

相关推荐

    前端开源库-ember-cli-deploy-appshell

    为了优化前端应用的性能和用户体验,`ember-cli-deploy-appshell` 库应运而生。这个开源项目是 Ember 社区为 Ember CLI 设计的一个插件,其主要目的是实现基于 Application Cache(AppCache)的 Shell 模式部署,以...

    Deploy Rails Application

    Rails 经典开发参考书, Ruby on rails 系近年来在西方日渐盛行的一套网页开发工具,其高度集成化时开发时间大大缩短.

    mina-multistage:Mina插件增加了对多个阶段的支持

    require : false 然后执行:$ bundle 或将其自己安装为:$ gem install mina-multistage 在您的config/deploy.rb需要mina/multistage : require 'mina/multistage'require 'mina/bundler'require 'mina/rails'...

    使用Mina轻松部署Rails(而且确实非常快!)

    **使用Mina轻松部署Rails(而且确实非常快!)** 在Ruby on Rails开发的世界中,部署应用程序是一项必不可少的任务。传统的部署方法,如Capistrano,虽然功能强大,但对新手来说可能较为复杂。而Mina则提供了一种...

    rails web server deploy guide

    标题 "rails web server deploy guide" 暗示了本文将关注如何部署Rails应用程序到Web服务器。Rails是Ruby on Rails的简称,是一个流行的开源Web开发框架,用于构建动态、数据驱动的网站。部署Rails应用通常涉及将...

    deploy_container_with_gpu.sh

    deploy_container_with_gpu.sh

    Deploy-a-Rails-App-With-Docker:“使用Docker部署Rails应用程序”课程的源代码-docker source code

    使用Docker部署Rails应用程序 讲师: 本课程将介绍使用Docker容器部署标准数据库支持的Rails应用程序的过程。 由于该过程的功能集和易于部署,更有价值的部署的潜力,该过程正变得越来越受欢迎。 在本课程中,我们...

    源码Deployment with Docker_ Apply continuous integration models, deploy app

    What you will learnSet up a working development environment and create a simple web service to demonstrate the basicsLearn how to make your service more usable by adding a database and an app server ...

    rails-app-cookbook

    rails-app食谱 这是一本食谱,允许仅使用存储库即插即用地创建应用程序。 该食谱负责创建数据库,通过捆绑程序安装所需的gems以及创建nginx堆栈来服务您的站点。 要求 此食谱已在Ubuntu 12.04和Ubuntu 14.04上进行了...

    Ruby-Mina快速部署和服务器的自动化工具

    mina deploy ``` Mina会提示你输入服务器的密码,或者如果设置了SSH密钥,它会自动进行身份验证。 六、扩展与优化 Mina支持与其他工具集成,如Capistrano、Nginx、Passenger等,可以实现更复杂的部署流程。此外,你...

    Agile Web Development with Rails Final

    Rails promotes agile development, allowing developers to build, deploy, and maintain web applications efficiently. #### Rails' Distinctive Features **What sets Rails apart from other web frameworks?...

    Ansible-rails-deploy.zip

    Ansible-rails-deploy.zip,Ansible脚本,用于设置完全加载的Ruby/Rails Web服务器Rails部署,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。

    Preparing to Deploy NSX with Britton Johnson video

    Preparing to Deploy NSX with Britton Johnson (@vcixnv) and Aaron Bolthouse (@Bhouse563) [720p].mp4Preparing to Deploy NSX with Britton Johnson (@vcixnv) and Aaron Bolthouse (@Bhouse563) [720p].mp4

    mule app with service API

    在本项目中,“mule app with service API”指的是一个利用 Mule ESB(企业服务总线)创建的应用,该应用包含了对外提供服务的 API。 1. **Mule 应用配置** - `mule-deploy.properties` 文件是 Mule 应用的部署...

    ansible-rails.deploy:部署 Rails 应用程序的 Ansible 角色,与 Haproxy 和 Phusion 乘客独立

    Rails 部署 Ansible 角色... rails_app_name : " {{ app_name }} " rails_app_user : " {{ app_user }} " rails_app_http_check_uri : " {{ app_healthcheck_uri }} " rails_app_host : 127.0.0.1 rails_app_platform :

    e5-deploy-with-docker-rails-api-single-node:第5集-https中部署的Rails API应用程序的源代码-docker source code

    自述文件 ...cd e5-deploy-with-docker-rails-api-single-node # edit docker-compose.yml to set the mysql & rails ports to be mapped on host docker-compose build bin/d_rails db:migrate bin/d

    Create_and_deploy_app

    标题 "Create_and_deploy_app" 暗示了这个主题与创建和部署应用程序有关,而标签 "HCL" 提示我们这可能与HCL Technologies或HCL编程语言有关。HCL Technologies是一家全球信息技术服务和咨询公司,同时HCL也是一种...

Global site tag (gtag.js) - Google Analytics