herokuで複数のアカウントを利用して開発する。
案件や会社に応じて分けて開発する場合に利用する。 それぞれ、webで登録済みで有ること。
ツールをインストール
$ heroku plugins:install heroku-accounts
会社組織で利用してシングルサインオンを利用する方法もあるみたいだが、今回は その方法は利用せずに、アカウント毎で公開鍵をheroku側に登録する形を取る。
それぞれにアカウントに紐付け
- office
- private
この2つのアカウントを作成する。 これは仮の名前なので、必ずしも実際のherokuアカウント名とする必要はない。
- officeアカウント
$ heroku accounts:add office
メールパスを入れて登録完了
- privateアカウント
$ heroku accounts:add private
同じ用に入れて完了
追加アカウントの確認
$ heroku accounts
アカウントの切り替え
$ heroku accounts:set office
それぞれ公開鍵を作成する
office 側
アカウントをofficeに切り替え
$ heroku accounts:set office
- キー作成、UPLOADされます。
$ heroku keys:add ~/.ssh/office.pub
- そのキーを作成できるように設定
$ vi ~/.ssh/config
中に追加
Host heroku.work
port 22
HostName heroku.com
IdentityFile ~/.ssh/work.pem
User git
TCPKeepAlive yes
IdentitiesOnly yes
private 側
アカウントをprivateに切り替え
$ heroku accounts:set private
- キー作成、UPLOADされます。
$ heroku keys:add ~/.ssh/private.pub
中身
Host heroku.private
port 22
HostName heroku.com
IdentityFile ~/.ssh/private.pem
User git
TCPKeepAlive yes
IdentitiesOnly yes
自身のアプリを確認
それぞれのアカウントに切り替えて確認、現在のアプリを確認
$ heroku apps
ケーススタディ
- 既存のherokuアプリを手元にもってくる場合
ディレクトリをinit
$ git init
アプリを確認
$ git apps
アプリ名でremoteを追加
$ heroku git:remote -a **appname***
$ cat .git/config
[remote "heroku"]
url = https://git.heroku.com/[アプリ名].git
fetch = +refs/heads/*:refs/remotes/heroku/*
$ git pull heroku main
- 手元にすでに既存のherokuアプリがある場合
そのリポジトリを利用してた時のアカウントで操作すれば問題無し。 heroku accounts:set private
同じ方法で、2つ以上のアカウントも保有は出来る。