ちょっとNode.jsに興味があってherokuにNode.jsのアプリを登録してみました。
以下は自分の忘れ防止
herokuのアカウントを作成
- http://api.heroku.com/signup から新規にアカウントを作成
- Email,passwordを選択
herokuのtoolbeltをインストール
herokuの toolbelt をインストールするのになんかコマンドがかかれてたのでコピペで実行
そのあと heroku コマンドが利用できるようになった。
sshの鍵の登録
githubやbitbucketで鍵をわけて利用していたので,heroku用に鍵を作成
私はパスフレーズを登録しました。
mkdir -p ~/.ssh/heroku
cd ~/.ssh/heroku
ssh-keygen -t rsa -C "Mail Addless"
それと~/.ssh/configに以下を追加しました。
(IdentityFileは秘密鍵の場所)
Host heroku
HostName heroku.com
IdentityFile ~/.ssh/path/to/heroku/secret-key_id_rsa
User git
heroku
- heroku loginでアカウント情報を入力
heroku loginでアカウント情報を入力
sshの鍵は次で登録するのでNoにしました。heroku login
- heroku keys:addでheroku用のsshの公開鍵を登録
heroku keys:add file-path(作成したid_rsa.pubのような公開鍵の方のパス)
herokuへpushするとき
普通にpushするには
ssh-add heroku's_secret_key
git push heroku master
でいいと思います。そのあと対象のディレクトリで
heroku open
でそのアプリをブラウザで開けました。
Emacsからpush
私はEmacsでmagitからpushしたかったので下記のコードを.emacsなどの設定ファイルに
追加しました。(ssh-agentが動いていることも必要です)
(defun my/ssh-add ()
(interactive)
(let* ((github "~/path/to/github's_id_rsa")
(bitbucket "~/path/to/bitbucket's_id_rsa")
(heroku "~/path/to/heroku's_id_rsa")
(ssh-add
(lambda (filepath)
(unless (string< "" (shell-command-to-string
(concat "ssh-add -l | grep " filepath)))
(shell-command (concat "ssh-add " filepath)))))
match)
(goto-char (point-min))
(when (search-forward-regexp
"^Remote: master @ .* (\\(.*\\))" nil t)
(setq match (match-string 0))
(when (string-match "@bitbucket.org" match)
(funcall ssh-add bitbucket))
(when (string-match "git@github.com" match)
(funcall ssh-add github))
(when (string-match "git@heroku.com" match)
(funcall ssh-add heroku)))))
(defadvice magit-push
(around ad-magit-push activate)
(my/ssh-add)
ad-do-it)
アプリの/.git/configにbranchの設定を追加しました。
追加後magitでcommitしたところpush待ちのものが見れるようになりました。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "heroku"]
url = git@heroku.com:YOUR-APPLICATION-NAME.git
fetch = +refs/heads/*:refs/remotes/heroku/*
[branch "master"]
remote = heroku
merge = refs/heads/master
あとはmagit-statusから"P","P"すればpushしてくれるはずです。
0 件のコメント:
コメントを投稿