`
clark1231
  • 浏览: 247090 次
  • 性别: 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/

 

分享到:
评论

相关推荐

    60道关于Redis的常见面试题.pdf

    - 1. 什么是 Redis?它的主要特点是什么? - 2. Redis 支持哪些数据结构?请详细描述每种数据结构的用途和特点。 - 3. 什么是缓存穿透?在使用 Redis 时,如何防止缓存穿透? - 4. 介绍 Redis 的持久化机制以及对比它们之间的区别。 - 5. 如何实现 Redis 的分布式锁?你了解的分布式锁有哪些实现方式? - 6. Redis 的数据淘汰策略有哪些?分别是如何工作的? - 7. 什么是 Redis 事务?它是如何实现的?与传统数据库事务有何不同? - 8. 如何设置 Redis 的主从复制?主从复制有什么优势和限制? - 9. Redis 支持的数据结构中,有哪些可以实现计数功能?请详细说明其使用场景。 - 10. 什么是 Redis Sentinel?它的作用是什么?如何配置和使用 Sentinel?

    2024年社交媒体广告行业分析报告.pptx

    2024年社交媒体广告行业分析报告.pptx

    网站界面设计mortal0418代码

    网站界面设计mortal0418代码

    2024年休闲椅行业分析报告.pptx

    2024年休闲椅行业分析报告.pptx

    anaconda3 -windows安装的

    anaconda3 -windows安装的

    华为客户关系管理策略解析glz.pptx

    华为客户关系管理策略解析glz.pptx

    asp.net基于三层模式实验室仪器设备管理系统源码.7z

    实验室设备仪器管理系统基于MVC思想和三层设计模式构建,前台采用bootstrap响应式框架,后台运用div+css技术,确保用户界面的友好与兼容性。在Visual Studio 2010或更高版本软件上进行程序开发,利用sqlserver2005或更先进的数据库系统提供稳定的数据支持。 该系统包含四个核心模块:实验室登陆模块、学生模块、教师模块和管理员模块。登陆模块提供用户注册和登陆功能,确保用户信息的准确与安全。学生模块提供实验课仪器设备的信息查询、借领仪器耗材、设备事故的登记等服务,满足学生在实验过程中的各种需求。 管理员模块功能丰富,包括实验室设备信息查询、设备事故记录、设备资料管理、设备损坏管理以及设备耗材借领等。管理员可以方便地查询和统计设备仪器信息,上报和处理设备事故,更新设备操作指南,管理设备损坏信息,以及处理设备耗材的借领和归还。 实验设备管理数据库是系统的核心部分,管理员可以添加、删除、更改设备信息,记录报废、维修、申请购买以及新增设备的详细信息。所有相关信息如报废表、维修表、设备购买申请表、新增设备属性表等都会在终端实时显示,确保信息的及时性和准确性。 此

    java练习题2.txt

    java练习题

    国产达梦数据库DM88.1.1.45下载链接,Linux-rh7-64位版本.zip

    国产达梦数据库DM88.1.1.45下载链接,Linux-rh7-64位版本.zip

    物联网嵌入式ESP32开发例程18-FreeRTOS操作系统之任务通知模拟事件标志组C程序代码.rar

    1、嵌入式物联网ESP32项目实战开发。例程经过精心编写,简单好用。 2、代码使用Visual Studio Code + ESP-IDF开发,C语言编程。例程在ESP32-S3上运行。若在其他型号上运行,请自行调整。 3、如果接入其他传感器,请查看发布的其他资料。 4、ESP32与模块的接线,在代码当中均有定义,请自行对照。 5、若硬件差异,请根据自身情况适当调整代码,程序仅供参考。 6、代码有注释说明,请耐心阅读。 7、技术v:349014857;

    工作汇报 年终总结2.pptx

    引言 年度工作回顾 系统进展与亮点 技术创新与应用 市场反馈与用户评价 存在问题与挑战 未来展望与计划 结束语与感谢 一、引言 简要介绍智能家居系统的重要性和发展趋势 回顾本年度的工作目标和重点 二、年度工作回顾 系统建设与维护 完成的项目与里程碑 系统稳定性与可靠性提升 团队建设与培训 团队成员构成与职责 培训与技能提升活动 合作伙伴与资源整合 与供应商、合作伙伴的合作情况 资源整合与利用 三、系统进展与亮点 功能扩展与优化 新增功能介绍与效果评估 现有功能的优化与改进 用户体验提升 界面设计与交互优化 用户反馈与改进措施 四、技术创新与应用 物联网技术的应用 传感器与通信技术的升级 大数据分析与应用 智能家居的智能化管理 自动化控制与节能策略 安全防护与预警系统 五、市场反馈与用户评价 市场反馈分析 市场需求与竞争态势 市场占有率与增长趋势 用户评价总结 用户满意度调查结果

    基于ssm+vue开发的web新闻流媒体平台源码数据库文档.zip

    基于ssm+vue开发的web新闻流媒体平台源码数据库文档.zip

    哈夫曼树与哈夫曼编码介绍.zip

    哈夫曼树与哈夫曼编码

    2024年千里明贴膏行业分析报告.pptx

    行业分析报告

    java练习题9.txt

    java练习题

    stm32c8t6超声波标准库开发 stm32c8t6超声波测距.zip

    stm32c8t6超声波标准库开发 stm32c8t6超声波测距

    学生成绩管理系统 C# 毕业设计项目用C#语言写的学生成绩管理系统, 代码有参考和学习价值, 可

    学生成绩管理系统 C# 毕业设计项目用C#语言写的学生成绩管理系统, 代码有参考和学习价值, 可用于期末项目, 以及毕业设计项目 !

    excel函数公式大全

    excel函数公式大全

    基于stm32的智能小车(遥控控制、避障、循迹)stm32f103系列单片机

    基于stm32的智能小车(遥控控制、避障、循迹)stm32f103系列单片机控制智能小车,具有三种控制方式,遥控控制、避障、循迹(内含三个工程,分别对应三种控制方式).zip

    基于Java的高校教师绩效考核系统的设计与实现【附源码】.zip

    基于Java的高校教师绩效考核系统的设计与实现【附源码】.zip

Global site tag (gtag.js) - Google Analytics