- 安装mina
# 本地命令行,当前最新版本1.2.3
gem install mina
- 创建Mina的配置文件
cd进入自己的Rails项目目录
mina init
会生成deploy.rb文件
进行配置
require 'mina/rails'
require 'mina/git'
require 'mina/puma'
require 'mina/rbenv' # ruby版本控制用rbenv,rvm的话还要设置gemset
set :application_name, 'rails_app' #给项目起名字,随便起
set :domain, 'username@ip' #用户名@ip,用来ssh 登录服务器用的
set :deploy_to, '/home/username/rails_app' #服务器里想把项目部署的位置,可以没有rails_app那个文件夹,会自动创建
set :repository, 'git@xxxxxxxxt' #项目git地址,也可以用https开头的
set :branch, 'master' #想部署的分支
set :forward_agent, true #使用本地的`SSH秘钥`去服务器执行`git pull`,这样`Git`上就不用设置`部署公钥`
#如果rails是5.2以上版本,就把下面的secrets.yml改成master.key
set :shared_files, fetch(:shared_files, []).push('config/database.yml', 'config/secrets.yml')
task :remote_environment do
invoke :'rbenv:load'
end
task :setup do
# command %{rbenv install 2.3.0 --skip-existing}
end
desc "Deploys the current version to the server."
task :deploy do
deploy do
invoke :'git:clone'
invoke :'deploy:link_shared_paths'
invoke :'bundle:install'
invoke :'rails:db_migrate'
invoke :'rails:assets_precompile'
invoke :'deploy:cleanup'
on :launch do
in_path(fetch(:current_path)) do
command %{mkdir -p tmp/}
command %{touch tmp/restart.txt}
end
end
end
end
- 服务器生成Mina的相关目录
在本地mina setup
,这里的遇到个坑,运行完这个命令终端里会提示远程服务器关闭,还是红色字体提示,我以为是报错了,其实没有报错。
然后你需要SSH到服务器上,在生成的项目下 /shared/config目录中,新建以下两个文件
- database.yml,直接把本地database.yml的内容拷进去
- secrets.yml,也是一样把本地 secrets.yml的内容拷进去