Capistrano3のデプロイのリポジトリ先を変更する
Capistrano3を使ってデプロイを行っているアプリがあったのだけれど、途中でgitのリポジトリを変更しなければならなくなってしまったので、そのときのメモ。
config/deploy.rbのrepo_urlを変更する。
diff --git a/config/deploy.rb b/config/deploy.rb index 871df02..ba68d20 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -2,7 +2,7 @@ lock '3.2.1' set :application, 'mywebapp' -set :repo_url, 'git@git123.foo.com:mywebapp.git' +set :repo_url, 'git@git789.bar.com:mywebapp.git' # Default branch is :master ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }.call
新しいgitリポジトリに向き先を変えて、pushする。
$ git remote set-url origin git@git789.bar.com:mywebapp.git $ git push -u origin master
ここまでは簡単なのだけれど、Capistrano3ではこのままだとまだ旧リポジトリの方を参照し続けてしまうので、デプロイ先のサーバで作業が必要だった。
$ cd /var/www/mywebapp $ rm -r repo
deploy_toに設定しているディレクトリの、「repo」というディレクトリに既存のリポジトリ情報が入っているので、一度消してしまえば次からは上で設定したrepo_urlのリポジトリを見るようになる。
試してないけど、
$ cat repo/config [core] repositoryformatversion = 0 filemode = true bare = true [remote "origin"] url = git@git123.foo.com:mywebapp.git fetch = +refs/*:refs/* mirror = true
のurlを書き換えるだけでもいけるかもしれない。
あとはデプロイ。
$ bundle exec production deploy
参考:
ruby - Capistrano deploy fails after I changed the repository URL - Stack Overflow