Dan*_*neS 51 git capistrano ruby-on-rails
我需要对deploy.rb
下面的文件进行哪些更改才能从本地git repo部署我的应用程序?如果我无法从本地仓库部署,我可以让capistrano使用工作复制吗?
set :application, "my_app"
set :repository, "."
set :local_repository, "file:///path/to/application/.git"
set :deploy_to, "/data/www/apps/#{application}"
set :deploy_via, :copy
set :copy_cache, true
set :user, "dane"
set :use_sudo, false
set :scm, :git # Should I change this to :none
set :branch, "master"
Run Code Online (Sandbox Code Playgroud)
Ari*_*jan 56
这很简单:
set :scm, :none
set :repository, "."
set :deploy_via, :copy
Run Code Online (Sandbox Code Playgroud)
只需从项目的根目录运行Capistrano.
将deploy_via, :copy
在3版本已被删除.
https://github.com/capistrano/capistrano/issues/695
在大多数情况下,您应该将代码放在github或bitbucket等在线存储库中,然后您只需在deploy.rb文件中设置此行:
set :repo_url, 'git@bitbucket.org:my_account/my_project.git'
Run Code Online (Sandbox Code Playgroud)
虽然如果您正在部署的远程服务器上也有一个存储库,那么您可以将deploy.rb文件中的那一行更改为:
set :repo_url, 'file:///home/deploy/bare_repo/my_project.git'
Run Code Online (Sandbox Code Playgroud)
请记住,三个正斜杠是重要的,因为file://
告诉capistrano你正在寻找一个文件,并且前面的斜杠需要指向一个类似的根路径/home/deploy/bare_repo/my_project.git
.
小智 7
set :repository, 'file:///path/to/your/git_repository'
set :local_repository, "file://."
set :scm, :git
# set :deploy_via, :copy # you must comment it
Run Code Online (Sandbox Code Playgroud)
为我运行的 Capistrano 3 解决方案:
before :deploy, :deploy_from_local_repo
task :deploy_from_local_repo do
set :repo_url, "file:///tmp/.git"
run_locally do
execute "tar -zcvf /tmp/repo.tgz .git"
end
on roles(:all) do
upload! '/tmp/repo.tgz', '/tmp/repo.tgz'
execute 'tar -zxvf /tmp/repo.tgz -C /tmp'
end
end
Run Code Online (Sandbox Code Playgroud)
在部署之前,您将 tar.gz 文件上传到服务器,解压缩并最终将 :repo_url 重置为文件模式。
注意删除之前的 repo:
task :remove_repo do
on roles(:all) do
execute "rm -r #{repo_path}"
end
end
Run Code Online (Sandbox Code Playgroud)
我使用了@Ariejan和@HungYuHei的组合,这些答案对我有用.
set :deploy_via, :copy
set :use_sudo, false
set :scm, "git"
set :repository, "."
set :local_repository, "."
set :branch, "master"
Run Code Online (Sandbox Code Playgroud)
如果您使用本地副本(并且没有Github上的项目),那么:check_revision
在deploy.rb中禁用任务来检查远程是否与本地git同步也是明智之举.
归档时间: |
|
查看次数: |
26020 次 |
最近记录: |