Skip to content

Latest commit

 

History

History
235 lines (164 loc) · 11.2 KB

README.md

File metadata and controls

235 lines (164 loc) · 11.2 KB

TechTrain Rails Railway について

Railway では Git で自分が取り組んだ内容を記録するときに、自動でテストが実行されます。この際、Station の内容に即した実装になっているかを最低限のラインとして確認します。 テストが通れば Station クリアとなります。 クリア後、TechTrain の画面に戻り、クリアになっているかを確認してみてください。

バージョン情報

言語、フレームワークなど バージョン
Rails 6.*
Ruby 2.7
MySQL 8.*

初期設定

必要なツール

ツール名 目安となるバージョン
Node.js 14.* [ 12.* , 16.* では動作しません]
Yarn 1.22.*
Docker 20.10.*
Docker Compose 1.29.*

Dockerをお使いのPCにインストールしてください。
バージョンが異なる場合、動作しない場合があります。
Node.js, Yarnのインストールがまだの場合はhtml-staionsを参考にインストールしてください。
また、使用PCがWindowsの場合は、WSLをこの記事を参考にインストールしてください。

「必要な」インストール済みの場合

次の手順で取り組み始めてください。

rails-stationsリポジトリのFork

画面右上にあるForkより Rails Railwayのリポジトリを自分のアカウントにForkしてください。

rails-stationsリポジトリのクローン

作成したリポジトリを作業するディレクトリにクローンしましょう。

  • Macなら Terminal.app(iTerm2などでも良い)
  • Windowsなら PowerShell(GitBashなどのインストールしたアプリでもう良いです。アプリによってはコマンドが異なることがあります)

で作業するディレクトリを開き、次のコマンドでForkしたReact.js Railwayのリポジトリをローカルにクローンしてください。

git clone https://github.com/{GitHubのユーザー名}/rails-stations.git

SSHでクローンを行う場合には、次のようになります

git clone [email protected]:[GitHubのユーザー名]/rails-stations.git

パッケージのインストール

クローンしたばかりのリポジトリは歯抜けの状態なので、必要なファイルをダウンロードする必要があります。 10 分程度掛かることもあるため、気長に待ちましょう。上から順番に1つずつコマンドを実行しましょう:

cd rails-stations
docker compose build
docker compose run --rm web bundle install
docker compose up -d
docker compose exec web yarn install // ←こちらを実行した後に「TechTrainにログインします。GitHubでサインアップした方はお手数ですが、パスワードリセットよりパスワードを発行してください」と出てくるため、ログインを実行してください。出てこない場合は、コマンドの実行に失敗している可能性があるため、TechTrainの問い合わせかRailwayのSlackより問い合わせをお願いいたします。

上記のコマンドを実行すると、techtrainにログインするように表示が行われます。 GitHubでサインアップしており、パスワードがない方がいましたら、そのかたはパスワードを再発行することでパスワードを作成してください。

ログインが完了すれば、ひとまず事前準備はおしまいです。お疲れ様でした。 TechTrainの画面からチャレンジを始めることもお忘れなく! Rails Railway に取り組み始めてください。

DBと接続をしたいという方へ

  • Sequel Pro
  • Sequel Ace
  • Table Plus
  • MySQL Workbench

などでDBの中身を確認したいという方は次の接続情報を利用してください

項目名 情報 説明
Host 127.0.0.1 接続先のDBが存在するホストを指します。
Port 3306 DB接続に利用するポート番号です。
DB User root DB内のユーザーになります。他のユーザーも用意してあるので、勉強に使いたい時は使ってみてください。
DB Password password DBに接続する際のパスワードです。root用のパスワードなので、他のユーザーを利用したい場合には、Dockerまわりの内容を勉強し、設定を確認してみてください。
DB Name app_development 接続するDB名です。他にapp_testというRailsのテストをする際に利用するDBを用意しています。

SSHという仕組みを利用して繋ぐこともできますが、基本的には上記の設定で繋ぐのが一番簡単です。 接続されないという方は、Dockerのビルドと起動がされていないかもしれません。 解決についての詳細は、このREADMEにある

トラブルシューティング

DBに接続して中身が見れないなのですが?

Dockerが起動されているかを確かめる

Macなら, iTerm.app, Terminal.app Windowsなら, PowerShell

などのアプリケーションを立ち上げ、このリポジトリが存在するディレクトリに移動してください。 わからない方は、 カレントディレクトリ 移動 などで調べてみてください。(Macなら、cdコマンド、Windowsなら一部dirコマンドを利用します) このリポジトリをCloneしたディレクトリがカレントディレクトリになるように移動してください。 その上で docker compose ps を実行して次のようにDockerが起動されていることを確認してください。

$ docker compose ps

        Name                      Command               State                          Ports                       
-------------------------------------------------------------------------------------------------------------------
rails-stations_db_1    docker-entrypoint.sh --def ...   Up      0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp
rails-stations_web_1   entrypoint.sh bash -c rm - ...   Up      0.0.0.0:3000->3000/tcp,:::3000->3000/tcp   

Exit という文字が見えたのであれば、何らかの原因でDockerの起動がうまく動作していません。 docker compose logs コマンドを起動してその内容をコピペし、 RailwayのSlackワークスペースに入ってみてください。 そちらで質問すると、回答があるかもしれません。自分で調べられるのがベストです。

Dockerが起動されているが、接続されない

Exitがない状態にも関わらず、接続できない場合は、Databaseの作成がうまくいっていない可能性があります。 次のコマンドで動作するかどうかを確認してみてください。

docker compose exec db mysql -uroot -ppassword -e 'show databases;';

次のような結果が返ってきていれば、正常です。

docker compose exec db mysql -uroot -ppassword -e 'show databases;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database           |
+--------------------+
| app_development    |
| app_test           |
| information_schema |
| message            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

もし、 app_developmentapp_test が作成されていないようであれば、次のコマンドを実行しましょう。

docker exec -i rails-stations_db_1 mysql -h127.0.0.1 -uroot -ppassword < init/001_ddl.sql

これで、 app_developmentapp_test が作成されていれば、問題なく接続できます。

commitしたのにチェックが実行されていないようなのですが?

チェックのためには、次の二つの条件が必須となります。

  1. 黒い画面(CLI,コマンドライン)からTechTrainへのログイン
  2. pre-commit hook と呼ばれるcommit時に実行されるGitの仕組みが仕込まれていること

特に2については

  • SourceTreeやGitHubAppでクローンした
  • httpsでクローンした

際にうまくいかないことが多いということが報告されています。 もし上記のようなことが起こった場合には、Terminalなどの画面でSSHによるクローンを試していただき、その上で yarn install を実行していただくことで解決することが多いです。もし解決しなかった場合には、運営までお問い合わせいただくか、RailwayのSlackワークスペースにてご質問ください。

自分のリポジトリの状態を最新の TechBowl-japan/rails-stations と合わせる

Forkしたリポジトリは、Fork元のリポジトリの状態を自動的に反映してくれません。 Stationの問題やエラーの修正などがなされておらず、自分で更新をする必要があります。 何かエラーが出た、または運営から親リポジトリを更新してくださいと伝えられた際には、こちらを試してみてください。

準備

# こちらは、自分でクローンした[GitHubユーザー名]/rails-stationsの作業ディレクトリを前提としてコマンドを用意しています。
# 自分が何か変更した内容があれば、 stash した後に実行してください。
git remote add upstream [email protected]:TechBowl-japan/rails-stations.git
git fetch upstream

これらのコマンドを実行後にうまくいっていれば、次のような表示が含まれています。

git branch -a ←このコマンドを実行

* master
  remotes/origin/HEAD -> origin/main
  remotes/origin/main
  remotes/upstream/main ←こちらのような upstream という文字が含まれた表示の行があれば成功です。

こちらで自分のリポジトリを TechBowl-japan/rails-stations の最新の状態と合わせるための準備は終了です。

自分のリポジトリの状態を最新に更新

# 自分の変更の状態を stash した上で次のコマンドを実行してください。

# ↓main ブランチに移動するコマンド
git checkout main

# ↓ TechBowl-japan/rails-stations の最新の状態をオンラインから取得
git fetch upstream

# ↓ 最新の状態を自分のリポジトリに入れてローカルの状態も最新へ
git merge upstream/main
git push
yarn install

GitHubアカウントでサインアップしたので、パスワードがないという方へ

https://techbowl.co.jp/techtrain/resetpassword

上記のURLより自分の登録したメールアドレスより、パスワードリセットを行うことで、パスワードを発行してください。

メールアドレスがわからない場合は、ログイン後にユーザー情報の編集画面で確認してください。 ログインしていれば、次のURLから確認できます。

https://techbowl.co.jp/techtrain/mypage/profile