Skip to content

Instantly share code, notes, and snippets.

@uekkie
Last active November 16, 2023 03:12
Show Gist options
  • Save uekkie/2bc80d89a15006398344395558426e4e to your computer and use it in GitHub Desktop.
Save uekkie/2bc80d89a15006398344395558426e4e to your computer and use it in GitHub Desktop.
2023_SGCamp_環境構築

2023_sg-camp_環境構築

環境

  • Mac
  • GitHubでアカウント作成&アイコン設定
  • Homebrew
  • VS Code
  • XCode
  • bash or zsh
  • rbenvでインストールする
    • ruby "3.2.2" (Railsチュートリアルの最新に合わせる)
  • rails "7.0.8" (Railsチュートリアルの最新に近いバージョンに合わせる。7.1系の方がよいところがあれば検討)
  • PostgreSQL v14

不要

1. 必須ソフトのインストール

以下をインストールしてください。

brew --version でインストールされた事を確認

# brewコマンドのインストール場所を確認
which brew

/opt/homebrew/bin/brewの場合(M1mac) 設定ファイル(.zshrc/.bash_profile)に以下書き込み zshの場合

echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc

bashの場合

echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.bash_profile

VS Code おすすめ拡張機能

ダウンロード後、settingからspellと検索し、「cSpell.enabledLanguageIds」のリストにrubyを手動追加すると適用される 参考(https://qiita.com/suke_pg/items/0d185c7b37ae592b7314)

homeに sg-camp ディレクトリを作る(この中に環境を作っていきます。)

cd
mkdir sg-camp

現状の環境を確認

.zshrc/.bash_profile の設定を確認

cd
cat .bash_profile
# cat .zshrc

注) ※.zshrc/.bash_profileがない場合はファイルを作る

homebewでインストール済みのパッケージを確認

❯ brew list --versions | egrep "ruby|postgre|rbenv|git"
git 2.42.0
postgresql@14 14.9
rbenv 1.2.0
ruby 3.2.2_1
ruby-build 20230608

# すでにインストールしているものはスキップしてOKです
# 判断が難しい場合は質問してください

2. Ruby のインストール

rbenvをインストール

brew install rbenv ruby-build

rbenv init

# 上記完了後、ターミナルを再起動

rubyインストール

rbenv install 3.2.2
rbenv versions

インストールしたバージョンが表示されればOK

sg-camp ディレクトリに移動し、ruby 3.2.2 を適用

cd ~/sg-camp
rbenv local 3.2.2
ruby -v
# 設定したversionが表示されればOK

3. Rails インストール

sg-campディレクトリに移動

cd ~/sg-camp

rails 7.0.8をインストール

gem install rails -v 7.0.8  --no-document

--no-documentオプションに関して https://www.orzs.tech/gem-not-install-document/

rails -v
# インストールしたバージョンが表示されたらok

4. postgresql インストール

何も指定せずに rails new するとSQLiteがデフォルトで採用されるが、SQLiteはアプリをデプロイするサーバーでつかえないため、postgresqlを使用します。

brew install postgresql@14

M1macの場合 設定ファイル(.zshrc/.bash_profile)に以下書き込み

zshの場合

echo 'export PATH="/opt/homebrew/opt/postgresql@14/bin:$PATH"' >> ~/.zshrc

bashの場合

echo 'export PATH="/opt/homebrew/opt/postgresql@14/bin:$PATH"' >> ~/.bash_profile
psql --version
# インストールされたことを確認

参考資料 https://amateur-engineer.com/postgresql-mac-in–stall/

アプリ作成

rails new hello_app --skip-bundle -d postgresql

hello_appはgithubの動作確認および、チュートリアル第一章で使うので消さないでね

エディタでgemfileを書き換え(15行目)

cd hello_app
bundle install

アプリ起動

rails db:create

posgreが起動してませんエラーが出た場合

posgre起動

brew services start postgresql@12

起動していることを確認(postgresql@14が表示されていればok)

brew services list
rails s

http://localhost:3000/ にアクセス

4. Git

gitが入っているか確認

git --version
# versionが表示されればok

gitが入っていなかった場合 以下のようなウィンドウが表示されるのでインストールを押す、インストール後改めてgit --versionでインストールされた事を確認

{{XCodeの画像}}

gitの初期設定(gitが入っていることが前提)

Gitにユーザー名とメールアドレスを設定することで、コミットしたときに誰が行なったコミットかを記録することができる

参考資料 Git でのユーザ名を設定する - GitHub Docs ユーザー名の設定

設定の有無を確認

git config --global user.name

設定されてない場合

名前を設定

git config --global user.name "自分の名前"

※「自分の名前」は任意

設定されたことを確認

git config --global user.name

メールアドレスの設定

設定の有無を確認

git config --global user.email

設定されてない場合

メールアドレスを設定

git config --global user.email 自分のメールアドレス

設定されたことを確認

git config --global user.email

push/pull のパスワードキャッシュタイムの設定

※ssh接続の場合不要

この設定を行わないとpushコマンドやpullコマンドを入力するたびにユーザー名やパスワードの入力が求められて面倒、以下設定をすることで認証情報が指定した期間内キャッシュとして保存されるため改めて認証を行わずに済む

git config --global credential.helper "cache --timeout=86400"
# 1日 = 86400秒

5. GitHub

参考資料 第1章 ゼロからデプロイまで - Railsチュートリアル

SonicGardenCamのgithub organizationに招待

https://github.com/orgs/SonicGardenCamp/repositories

リモートリポジトリ作成

作成場所

SonicGardenCamのgithub organization内

リポジトリ名は「hello_app_(githubに登録している名前)」とする(基本アプリ名と統一)

privateを選択後

create repository

個人アクセストークンを作成(リポジトリをプッシュする際に必要)

※ssh接続の場合不要、「ローカルリポジトリを作成」へ

個人アクセストークンを使用する - GitHub Docsを読んで設定(Expirationは90日、Scopes は repo のみ)

Generate tokenをクリックして個人アクセストークンを発行 個人アクセストークンはページを閉じるか移動すると消えてしまうので、後のステップにあるgit pushが終わるまでページを開いたままにする ここで生成された個人アクセストークンは、パスワードと同じように重要な情報として扱うこと(参加者個人で保管してもらう)

ローカルリポジトリを作成 ターミナル上で対象アプリ(hello_app)まで移動

git init

ローカルリポジトリ(今回で言えばhello_app)のpush先の1つとしてリモートリポジトリを登録する

先ほど作成したリモートリポジトリ画面からurlをコピー(HTTPSを選択して、表示されたurlをコピー)

対象アプリ(hello_app)まで移動

git remote add origin {コピーしたurl}
git add .
git commit -m ‘init’
git push -u origin main

# git push -u origin mainに失敗した場合

# 既存branchを確認
git branch

# masterと表示された場合
git push -u origin master

# またはpush前にデフォルトブランチ名を変更
git config --global init.defaultBranch main

git branch -m master main
git push -u origin main

(参考)https://qiita.com/fk_chang/items/a4839a595fef9a2c3724

表示されるメッセージに従って操作

GitHubのユーザー名(Username)と、メールアドレス(Password)を入力

パスワードの欄には、先ほど作成した個人アクセストークンを入力。無事に認証に成功したら、cache timeoutの期間(86400秒=1日)もしくは個人アクセストークンの有効期限(90日)が切れるまでパスワード入力は不要になる。

リモートリポジトリにhello_appの内容が反映されているか確認

※hello_appはチュートリアルで使うので消さないで

6. アプリのデプロイ(fly.io)

※デプロイはキャンプ始まってからでいいので、公式ドキュメントを読んでおいてもらう。

Fly.io https://railsgirls.jp/deployment/fly-io

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment