Ruby on Rails → Git (Bitbucket) → Herokuのデプロイまで。

なんか色々とおそ松様でしたので、改めて動作をまとよう。

これ何回も何回もするわけでないから、忘れそうだし。

自分のために。誰かに説明するときのために。

第1章 ゼロからデプロイまで | Rails チュートリアル

0.全てを削除。

まずはここからだよね・・・今まで作ったの削除しなきゃ。

0-1.

プロジェクトフォルダを全て削除。

何っ!?管理者権限が必要だって?

うまく削除出来ないので、エディタ(Atom)から強制削除。

0-2.

作成したSSHファイルを削除。

C:\Users\俺の名前\.ssh

で、sshのファイルにアクセス。

作ったのは、bitbucketのフォルダなので、それを削除。

0-3.

BitbucketとHerokuの削除。

それぞれログインして、連結しているものを削除する。

Bitbucket はリポジトリSSH鍵を削除。

Herokuはアプリを削除。

よし、準備完了・・・!多分。

 

1.Ruby on Railsをインストール

作りたいフォルダのところを右クリック、Git bush Hereで開く。

hogehogeが一般らしいので、俺は gerogeroにして見る。

...インストール完了したな!

で早速ウェーイが出ているか確認するのだ。

ミッションコンプリート。次の作戦実行に移る。

 

2.Bitbucketと接続

bitbucket.org

さて、前回のめちゃくちゃな記事を参考にしつつ進めて見よう。

Bitbucketを利用して、Gitアップロード成功まで

・・・無駄話が多いし、読みにくい。

 

まず、下記のサイトを参考にして進めていく。

qiita.com

 

2-1 SSH鍵の登録

C:\Users\俺の名前\.ssh

でファイルにアクセスして、フォルダを作る。

gerogero フォルダ。

そのフォルダにアクセスして、右クリックで git bush here!

  • ssh-keygen -t rsa -C gerogero@gero.com

前回ここのメールアドレスを、Bitbucketと違うメールアドレスにしたため、問題が発生したので、今回はちゃんと入力するぜ。

なになに、Enter file in which to save the key (/home/ユーザ名/.ssh/id_rsa):とな

ここも、最初入力に手こずったが、赤太文字の部分まで入力して、その後に作成したフォルダ名を追加して入力してあげればOK。

これの場合は、

  • /home/ユーザ名/.ssh/gerogero/id_rsa

となる。

id_rsaの部分も設定可能だと思うけど、変なエラー出ても嫌だし、怖いからやめとこ。

通常Insertでペーストだが、Shift+Insertでペーストできるぞ。

あとは、エンター2回でスキップ。

・・・ふぅ。エラーが出ちまったぜ。

何度貼り付けてもNG。手入力でやってみるか・・・成功。

ペーストすると何故かエラーがでる意味不明だったので、タイピングして入力しましょう。

.ssh/gerogero フォルダに、 id_rsa と id_rsa.pub の二つのファイルを確認し、成功!

 

2-1 公開鍵をBitbucketに登録

参照URLを確認して進めていく。

  • cat ~/.ssh/gerogero/id_rsa.pub | clip

pbcopyが使えなかったので、clipとしている。

Enterを押すと何も無ければOK。結構あっさりしてるよね。

Copy Done!ぐらい書いてくれたっていいんじゃない。

 

2-2 サーバー側の設定

.ssh フォルダの config ファイルをテキストファイルで開く。

本当は、viでする必要があるみたいだけど、まぁOKだよね。

開いたファイルに、下記内容を追記。

Host bitbucket.org
  HostName bitbucket.org
  IdentityFile ~/.ssh/gerogero/id_rsa
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

そして接続テスト

  • ssh -T bitbucket.org

logged in as 俺の名前

You can use git or hg to connect to Bitbucket. Shell access is disabled.

と表示されれば、OK!!

今のところ順調!!

 

2-3 Bitbucketでリポジトリを作成

BitbucketのWeb上で新規リポジトリを作成する。

「既にプロジェクトがあります」の部分をクリック。

さっきgit bush hereで立ち上げたものに

Step2の1行目をコピーしておこう!

 

2-4 ローカルリポジトリ作成

Ruby on Railsをインストールしたgerogeroフォルダを開いて、git bush here!

  • git init

を実行で、gitの内容を初期化するらしい。

  • 2-3のStep2で表示された1行目のコード

で、リモートのリポジトリのコピー確認。

  • git remote -v

で紐付けを確認したらOKみたい。

 

2-5 BitbucketにGit push!

 

  • git add -A
  • git commit -m "first upload"
  • git push

 

だと、

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin master

というエラーが出るので、

  • git push --set-upstream origin master

を実行し、

Branch master set up to track remote branch master from origin.

と出ればOK。

その後に、

  • git push

で内容をPushし、WebでBitbucketで作成したリポジトリをみて、最近の活動に fist uploadとあれば、接続完了!!

ーーーーーーーーーーーーーーーーーー

参照していたサイトの通り進めてハマった注意点。

##リモートリポジトリをコピー
$ git remote add origin git@bitbucket.org:test/testrepo.git

という部分が、

  • 2-3のStep2で表示された1行目のコード

となるため、もし参照サイトの通りに進めて、

間違った!1行目のコードを貼り付け、Enter!とした場合。

Please make sure you have the correct access rights
and the repository exists.

 

と出てしまった。

そのため、

  • git remote rm origin

で、一度接続されているリモートを rm(remove)してから対応すればOKだった。

ーーーーーーーーーーーーーーーーーー

3.Herokuにデプロイ

heroku.com

3-1.Herokuツールをインストール

Heroku CLI | Heroku Dev Center

Windows 64bitなので、該当するものを選択してダウンロード。

言われるまま、ハイハイしてインストールを行う。

何かが立ち上がっててインストール出来ない場合は、タスクマネージャーから強制終了するが吉。

  • heroku --version

heroku-cli/5.8.6-061a13c (windows-amd64) go1.7.5

と表示されているので、OK~!

 

3-2.Herokuにログイン

Git bushからログインしようとしたら、できなかったのでWindowsのCMDからログインする。

Login is currently incompatible with git bash/cygwin - Stack Overflow

  • heroku login
  • メアド入力
  • パスワード入力

うぇーい。ログイン完了!


3-3.HerokuにSQLitePostgreSQLにするための設定を行う。

gerogero フォルダの、Gemfileをエディタで開く。

12行目をコメントアウト
#gem 'sqlite3'

38行目移行を

group :development, :test do
  gem 'sqlite3', '1.3.11'
  gem 'byebug',  '9.0.0', platform: :mri
end

group :development do
  gem 'web-console',           '3.1.1'
  gem 'listen',                '3.0.8'
  gem 'spring',                '1.7.2'
  gem 'spring-watcher-listen', '2.0.0'
end

group :production do
  gem 'pg', '0.18.4'
end

に貼り付け直す。

  • bundle install --without production

を実行し、Gitにアップロード。

  • git add -A
  • git commit -m "gem update"
  • git push

Bitbucketの最近の活動でアップロードされているのを確認。

 

3-4.Herokuに新規アプリを作成する。

  • heroku create gerogero_app

前回 gerogero_appと追記し忘れたが故に、ランダムのアプリ名となってしまったので、今回はしっかりと追記。

名前がかぶっていなければ、アプリ作成は完了し、Herokuの方でもそのアプリが表示される。

 

3-4.Herokuにデプロイする

デプロイってなんだよって思って調べてみる。

de・ploy

de = 下に ploy = 策略

という事で、配置するという意味だ。軍事の配置のイメージ。

サイトに、デプロイし、顧客を捕虜にしていくぞっ!ククク。

はい、脱線しましたね。

  • git push heroku master

最初のアップデートが長いので、ドキドキしながら見守る。

お、何もエラーがなさそうだぞ。

早速、WebのHerokuに確認だ!

 

Latest activityを確認するとアップロードされているっぽい!

Open Appから確認!

 

The page you were looking for doesn't exist.

You may have mistyped the address or the page may have moved.

 

よし!!これで、成功だ!!!

あとは、Ruby on Railsで開発をしていって・・・。

がんばりますか。

Herokuにデプロイ再挑戦

機能はうまく行かなかったので、改めてHerokuにデプロイを挑戦する。

GitにPushはうまく行っていたので、そこはそのままに。

 

Herokuにログインすると、なにやら新しいアプリが作られている。

そして、Building Errorとな。

Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling.

 

group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'sqlite3', '1.3.13'
gem 'byebug', platform: :mri
end

の部分が怪しい。

チュートリアルに書いてあったけど、本当に必要なのかな。

一度削除して、bundle installをしてみる。

一応 bundle updateも。

やはりエラー。

https://devcenter.heroku.com/articles/sqlite3

を参考にしてくれとのことで書いていた。

ポスグレインストールしてくれと書いている。

Sqlite3使う方法を探す。とおもったが、やはりチュートリアルを再度試してみる事にする。

 

下部を

group :development, :test do
  gem 'sqlite3', '1.3.11'
  gem 'byebug',  '9.0.0', platform: :mri
end

group :development do
  gem 'web-console',           '3.1.1'
  gem 'listen',                '3.0.8'
  gem 'spring',                '1.7.2'
  gem 'spring-watcher-listen', '2.0.0'
end

group :production do
  gem 'pg', '0.18.4'
end

 

で貼り付けして、実行。

改めて、Pushしてみる。

git push heroku master

 

うぉおぉ!!!出来ましたよ!!

ひとまず、上の方にデフォルトで追加されていた

 gem 'sqlite3'

コメントアウトにして、下部の部分をコピペ。

そして、Pushしたらちゃんと表示された!!!

 

エラー文章をちゃんと読めという話ではあるのだけれど、まぁ結果オーライ。

heroku createの後ろに名前つけて、ちゃんとアプリにしたかったな。

復讐(習)も兼ねて、もう一度最初からやってみようかな。

自分のために。よしっ!一度全て削除しよう。

 

 

Herokuにデプロイまで行くぜ!

Gitはうまくいった。てこづったけど。

さて、気を取り直して進める。

第1章 ゼロからデプロイまで | Rails チュートリアル

Rails newを実行。
あれ・・・これさっき作ったフォルダの中に、フォルダ作らないといけないじゃん。
gitもまた設定し直しかよ。。 orz

cd .. で一つ階層をあげて、 rails new フォルダ名 に手動で作ったフォルダの名前をしたらどうなるんだろう。

ひとまずやってみよう。。。

 

・・・インストールはなんか出来ているっぽいな。

フォルダにも収まってるし。これは・・・いけるのか!?

1.5のbundle installをしてみる。

問題なさそうだ。。。もしかして順調?

rails s でサーバーを立ち上げ、ローカルホストにアクセス。

ヒャッハー! Your're on Rals!!


やったね!

Ctrl + C でサーバーを落とし。

git initでGitをセットアップ。

git add -A

git commit -m "Install ruby on rails"

git push


Bitbucketのコミットログをみると、バッチリ追加されてやがるぜコンチクショー!

やるじゃねぇか。

 

さて、デプロイするかのぉ。

Herokuのアカウントを作成し、newでappを作成。

リスト1.14のようにGemfileを変更しよう。

差分だけ編集して、下記のコマンドを入力。

bundle install --without production

 

そしてエラー。

[!] There was an error parsing `Gemfile`: You cannot specify the same gem twice with different version requirements.
You specified: sqlite3 (>= 0) and sqlite3 (= 1.3.11). Bundler cannot continue.


sqliteを2つ追加できないよという感じだね。

最初から入っている、 

# Use sqlite3 as the database for Active Record
gem 'sqlite3'

の部分削除してみよう。しらんけど。

 

bundle install アゲイン!

ふむ。同じエラーが発生。

gem 'sqlite3', '1.3.11'の、'1.3.11'を削除して、保存。

 

bundle install アゲイン!

Your Gemfile lists the gem sqlite3 (>= 0) more than once.
You should probably keep only one of them.
While it's not a problem now, it could cause errors if you change the version of one of th em later.

The dependency byebug (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add tho se platforms to the bundle, run `bundle lock --add-platform mri`.

英語でごちゃごちゃうっさいねん。

なんか、今問題ないみたいだからインストールしてくれた。

よくわからんけど、進んだからまぁいっか。

 

Herokuツールをインストール

Heroku CLI | Heroku Dev Center

Windowsだから、64bit版を選んでダウンロード。

そのまま、言われるままにハイハイして進める。

そして、インストールを続行。

vim.exetssh-agent.exeが立ち上がっててインストールできないよ!!

どこで立ち上げてるのかさっぱりわからんから、タスクマネージャーより強制終了。

よし。進んだ。

本当はちゃんと意味を理解しないといけないと思うけど、まぁいいや。

 

インストール完了。もう一回、Git bushを立ち上げる。

heroku --version

を入力。

heroku-cli/5.8.5-614a805 (windows-amd64) go1.7.5

 

ウェーイ!ちゃんと表示された。

 

heroku login

お、メアド聞かれているぞ。

このメアドは前回の失敗もあるから、登録されているメアドにしよう。bitbucketと同じメアドだった。これは間違えなし。

 

カタカタカタ・・・エンター

 

Login is currently incompatible with git bash/Cygwin/MinGW

 

なんでやねん!!

Login is currently incompatible with git bash/cygwin - Stack Overflow

WindowsのCMDからログインしなきゃいけないみたい。

仕方がないな・・・CMDで検索。立ち上げ。

heroku login 。メアド入力。パスワード入力。

Logged in as 俺!

 

出来た。

これって、Heroku使う時に、WindowsのCMDが必要ってことなんかな。わからんけど、Git pushしてみるか。

 

Git bushで操作。

git push heroku master

 

fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

はいはい。でましたよ。いつもの。

 

とおもったら、heroku createを忘れていた。

create後に、再度 git push heroku master を入力 エンター。

・・・進んだ!!色々とアップロードされている!!

 

Herokuアプリにアクセスしたら表示されたけど、これで良いのかわからん。

 

チュートリアルの1.3.4を実行していなかったから、実行しよう。

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception

  def hello
    render html: "hello, world!"
  end
end
root 'application#hello'

rails s

で、http://localhost:3000/ にアクセスして、表示を確認

git add -A

git commit -m 'hello'

git push

 

LF will be replaced by CRLF in... というエラーが出てくる。

git add した時に出る改行コードのwarning対応 - 先がまっくろー

git config --global core.autoCRLF false

を入力してエンター。

わからんけどやってみる。それが俺の忍道

 

気を取り直して、git にpushまで完了。

Bitbucketにアップデート内容を確認。

git push heroku master

を実行。

To https://git.heroku.com/serene-cove-51815.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/serene-cove-51815.git'

なんでやねん!!ちくしょう。ちくしょう。

Helloは表示されず。。。ぐぬぬ

ちょっと今日はここまでで、ギブアップ。

次は、ここをみて再度挑戦しよう。

Heroku導入メモ · GitHub

 

明日また最初から試してみるかな。大きなため息がでるぜ。

ウェーイ。

Bitbucketを利用して、Gitアップロード成功まで

躓いたところを記載。

Ruby on Railsチュートリアルの、ゼロからデプロイまでを進める。

https://railstutorial.jp/chapters/beginning?version=5.0#sec-introduction

早速Git導入でつまずく。
https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html

Step 4. Update your .bashrc profile file
Start GitBash.
Edit your ~/.bashrc file.
If you don't have a .bashrc file you can create the file using your favorite text editor. Keep in mind the file must be in your ~ (home) directory and must be named exactly . bashrc .
Add the following lines to the file:

ここらへんがよくわからなかったので、諦めた。

ググって、調べる。

http://qiita.com/yyosuke/items/986dabc9906674e2ea97

を参考に進める。
cat ~/.ssh/bitbucket/id_rsa.pub | pbcopy

ができなかったので、
cat ~/.ssh/bitbucket/id_rsa.pub | clip
で出来ると書いてあったので、clipにして対応。

vi config
ふぉぉぉ。なんだこの画面。
どうやって終了したらいいんだ。

http://qiita.com/merrill/items/9c800030333ab4c9408f

何がどうなっているのかわからなかったが、ノーマルモードにするためには、ESCと書いていたので、とりあえず押して見る。
p を押すと、ペーストされた。いや、このキーワードは貼り付けたくない・・・Ctrl+Z元に戻らない。
u で元に戻る。。お、元に戻った。

改めて貼り付け。

ダブルゼータで終了。zz ・・・終わらねぇ。
記録中 @u ってなんだよ。

入力が終わったら:wqで保存して終了。

と参考にしていた記事に書いてあった。ありがたし。
ようやく接続テスト。

なんかWarningでたけど無視。注意だからいいよね。多分。

fatal: pathspec 'test.txt' did not match any files

なんやかんやエラーがでる。進めん・・・
最初になんかややこしい行動したからかもしれん。一度作成していたファイルを削除して、また最初からやってみよう。
プロジェクトのファイルをまず削除しよ。

私はゼロからスタートします。というのからやってみるか。

Not a git repository
なんでやねん!

Please make sure you have the correct access rights and the repository exists.
ぐぬぬ。。

この時点で2時間格闘。

いやー・・・なんというか。うん。まぁそいうものですよね。

さて、気を取り直して最初からしよう。
中途半端に削除したらエラーが沢山だったので、フォルダ名とか同じだとなんか問題ありそうだから、変更しよう。
さっき作ったのも一度削除。

ファイル削除、Bitucketのリポジトリも削除完了。
概要に書かれている、全てが最高!という文字にツッコミを入れたくなる衝動にかられる。ぐぬぬ

git clone git://git.kernel.org/pub/scm/git/git.git
で、Gitをアップデート出来るみたいなので、してみる。
アップデートが始まった。

Done!やったー!!アップデート完了した!
じゃないよ!

気を取り直して、最初から改めてやってみよう。
Saving key "/c/Users/俺の名前/.ssh/bitcucket/id_rsa" failed: No such file or directory
スペル間違ってるし。

正しいスペルにして、貼り付けしたほうが良いな。Ctrl+Cではできないので、Insertか。
うん。ここでは、できないんだね・・・とおもったら、Shift+Insertだった。

文字入力ミスの多発。落ち着け・・・素数を数えるんだ。

 

おおお・・・接続テストで何もWarningが出なかった。

考えられる理由はただ1つ。

Bitbucketで登録したメアドと、ssh-keygenで登録したメアドを変えていたから!!・・・だと思いたい。信じたい。

このまま、もしかしていけちゃうのか・・・!?

 

ローカルリポジトリの作成のところまで、来たぞ。

フォルダ作って、そこに移動というコマンドはめんどいので、Windows上で作成し、そのフォルダにはいって、右クリックGit bush Hereで立ち上げる。

git init
Initialized empty Git repository in C:/俺のフォルダ/作ったフォルダ/.git/

とでる。これは良いのだろうか。

Bitbucketでリポジトリを新規作成し、既にプロジェクトが有りますをクリック。

おお、エラーなし。

git commit -m "First Commit"まではいけたけど、git push すると

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin master


なにこれ。そして、fatalの意味しらなかったけど、【致命的な】という意味なんだね。致命的なエラーみたいな事か。

ひとまず、書かれてるので

git push --set-upstream origin master

を試してみた。アップロードが始まった。

 あれ?これ成功しているのかな・・・?

 

おおおお!!!First Commitが表示された。

これでようやく、俺もGitが使える!!気がする。

 

何が問題だったかわからないけど、多分メアド登録したアカウントと違うの入力したのがエラーだったんじゃないかなと思う。

しらんけど。

 

約3時間の格闘で終了。

いや、遅すぎやろ・・・・orz