💎

【Rails Tutorial】第1章「Git/GitHubの使い方、デプロイに挑戦」まとめ

2024/03/10に公開

はじめに

以下を目的にしたメモとなります。

  • Rails Tutorialに関する個人的な学び
  • 上記についての関連情報を記載(より体系的な学びへ)

※Rails Tutorialについて特に印象に残った学びを選んで記載したものです。
したがって、こちらに書かれている内容がRails Tutorial第1章の全てではないことをご了承ください。

https://railstutorial.jp/chapters/beginning?version=7.0

学び

Credentials.yml.encmaster.keyについて

  • Credentials.yml.encは暗号化された設定ファイル
    • アプリケーションの秘密情報を安全に保管するために使用される
    • このファイルは「鍵穴」と考えられる
  • master.keyCredentials.yml.encを復号化するための鍵である
    • master.key の公開や他人への共有はダメ絶対!

(閲覧した関連情報)

https://qiita.com/NaokiIshimura/items/2a179f2ab910992c4d39

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は表示されない
    • プライベートリポジトリであれば、万が一コミットしてしまっても他人には見られない保護があるが、やはり公開しない方が安全

コマンド

# configフォルダに移動
cd config 

# credentials.yml.encを削除(鍵穴削除のため)
rm credentials.yml.enc

# master.keyを作成し、credentials.yml.encを再生成
rails credentials:edit 

Gitコマンド

  • add
    • ステージングエリアに変更を加えたファイルを追加する
    • これにより、次のコミットでこれらの変更を含めることができる
  • commit
    • ステージングエリアに追加された変更に対してメッセージを付けてコミットする
    • これにより、変更がローカルリポジトリに保存される
    • この状態は、変更がローカルに「保存」された状態
  • push
    • ローカルリポジトリの変更(コミットされた状態)をリモートリポジトリに送信する
    • これにより、リモートリポジトリが最新の状態に更新される

(閲覧した関連情報)

https://qiita.com/kohga/items/dccf135b0af395f69144

(コマンドではないが)

  • deploy
  • (開発したソフトウェアやアプリケーションを実際にユーザーが利用できる環境に配置し、実行可能な状態にすること)
    • デプロイメントサービス(例: Render)にリポジトリを登録する
    • 必要な設定ファイル(例: config/master.key)を入力する
    • 「Create」ボタンを押下してデプロイを開始する
    • デプロイメントが完了すると、公開されたアプリケーションのURL(Public URL)が表示される

(閲覧した関連情報)

https://wa3.i-3-i.info/word16767.html

Linuxコマンド

参考になったものをピックアップ

# copy files
cp foo bar

# move or rename files
mv hoge bar

# remove files
rm hoge

(閲覧した関連情報)

https://qiita.com/arene-calix/items/41d8d4ba572f1d652727#一覧

URL表示までのフロー

  1. GitHubでアプリのソースコードを管理
  2. Renderに基本情報を登録
  3. Renderでリポジトリを選択しデプロイ
  4. RenderのEnvironment Variableに以下を設定
    • keyに「Rails_Master_key」と入力
    • valueにmaster.keyファイルの値を入力
  5. master.keyをGitHubの管理から外し、Renderにのみ渡す
  6. Public_URLが生成される

(閲覧した関連情報)

https://zenn.dev/ak/articles/61d25099295372
https://github.com/tetz-akaneya/what-happens-when-JA
ブラウザで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章でも引き続きよろしくお願いいたします!

参考

https://railstutorial.jp/chapters/beginning?version=7.0#cha-beginning

https://dashboard.render.com/

Discussion