💎
【Rails Tutorial】第1章「Git/GitHubの使い方、デプロイに挑戦」まとめ
はじめに
以下を目的にしたメモとなります。
- Rails Tutorialに関する個人的な学び
- 上記についての関連情報を記載(より体系的な学びへ)
※Rails Tutorialについて特に印象に残った学びを選んで記載したものです。
したがって、こちらに書かれている内容がRails Tutorial第1章の全てではないことをご了承ください。
学び
Credentials.yml.enc
とmaster.key
について
-
Credentials.yml.enc
は暗号化された設定ファイル- アプリケーションの秘密情報を安全に保管するために使用される
- このファイルは「鍵穴」と考えられる
-
master.key
はCredentials.yml.enc
を復号化するための鍵であるmaster.key
の公開や他人への共有はダメ絶対!
(閲覧した関連情報)
Todo:
- 前提:(Rails Tutorialでは)
master.key
が存在しない状態 - 🔒
Credentials.yml.enc
(鍵穴)を削除する- 存在しない
master.key
に対応する鍵穴のため
- 存在しない
- 🔑
master.key
の生成-
master.key
が生成されると、それに対応するCredentials.yml.enc
(鍵穴)も自動的に生成される
-
- ⭐️(よく忘れがちでエラーの原因となる部分)
Credentials.yml.enc
(鍵穴)の変更部分をコミットする- コミットしないと変更が反映されないため
- 🚨
master.key
は絶対にコミットしてはいけない- git statusを実行しても
master.key
は表示されない - プライベートリポジトリであれば、万が一コミットしてしまっても他人には見られない保護があるが、やはり公開しない方が安全
- git statusを実行しても
コマンド
# configフォルダに移動
cd config
# credentials.yml.encを削除(鍵穴削除のため)
rm credentials.yml.enc
# master.keyを作成し、credentials.yml.encを再生成
rails credentials:edit
Gitコマンド
- add
- ステージングエリアに変更を加えたファイルを追加する
- これにより、次のコミットでこれらの変更を含めることができる
- commit
- ステージングエリアに追加された変更に対してメッセージを付けてコミットする
- これにより、変更がローカルリポジトリに保存される
- この状態は、変更がローカルに「保存」された状態
- push
- ローカルリポジトリの変更(コミットされた状態)をリモートリポジトリに送信する
- これにより、リモートリポジトリが最新の状態に更新される
(閲覧した関連情報)
(コマンドではないが)
- deploy
- (開発したソフトウェアやアプリケーションを実際にユーザーが利用できる環境に配置し、実行可能な状態にすること)
- デプロイメントサービス(例: Render)にリポジトリを登録する
- 必要な設定ファイル(例: config/master.key)を入力する
- 「Create」ボタンを押下してデプロイを開始する
- デプロイメントが完了すると、公開されたアプリケーションのURL(Public URL)が表示される
(閲覧した関連情報)
Linuxコマンド
参考になったものをピックアップ
# copy files
cp foo bar
# move or rename files
mv hoge bar
# remove files
rm hoge
(閲覧した関連情報)
URL表示までのフロー
- GitHubでアプリのソースコードを管理
- Renderに基本情報を登録
- Renderでリポジトリを選択しデプロイ
- RenderのEnvironment Variableに以下を設定
- keyに「Rails_Master_key」と入力
- valueに
master.key
ファイルの値を入力
-
master.key
をGitHubの管理から外し、Renderにのみ渡す - Public_URLが生成される
(閲覧した関連情報)
ブラウザでURLを開いてWebページが表示されるまで
- DNSでウェブサイト名をIPアドレスに変換(DNS解決)
- 3ウェイハンドシェイクでTCP接続
- TLSハンドシェイクでデータ暗号化
- HTTPでリクエスト送信
- サーバーがレスポンス返信
- ブラウザはレスポンスデータ(HTML、CSS、JavaScriptなど)を解析
- Webページとしてレンダリング(描画)
まとめ
第1章「Git/GitHubの使い方、デプロイに挑戦」では主に以下について学びました。
- Credentials.yml.encやmaster.keyの使い方や注意点
- Gitコマンドの意味について
- Renderアプリの使用方法
- Renderアプリを使用したデプロイ
第2章でも引き続きよろしくお願いいたします!
参考
Discussion