GitHubリポジトリを複数人で利用(1)GitHub上のRails7アプリをWindows10-WSL2-Ubuntu20.04にクローンして開発環境構築
2人で、アプリを開発することになりました。
- 社長X :GitHubでリポジトリAを作成、開発
- 私(社員)Y:社長XのGitHub上のリポジトリAをクローンして、私(社員)Yのローカルでコードを追加
流れとしては
- 私(社員)Yが、社長XのGitHub上のリポジトリAを、私Yのローカル環境にクローン
- 私のローカル環境下で、新規ブランチ “branch-YYY"を作成し、そこでコードを追加
- git add . -> git commit -> git pushで、"branch-YYY"を社長XのGitHub上のリポジトリA上にpush
- 私(社員)Yが、社長Xに、"branch-YYY" をPull Request
- 社長Xが、"branch-YYY" のコードを確認して、merge (“branch-YYY"ブランチ が、mainブランチにmergeされる)
- 私(社員)Yが、ローカルで、"branch-YYY"を削除
- 私(社員)Yが、社長XのGitHub上のリポジトリAnの新しいmainブランチを、私のローカル環境にクローン。ローカルで新規ブランチを作成し、新たにコードを追加
を繰り返していく流れになると思われますのでやってみます。
→やっている途中で、上記の1と2の間がすごく難しいことに気づきました。1と2の間を簡単にするためには、Dockerで環境構築した方が簡単そうだと感じました。(Dockerで環境構築したものをどうやって配布するのか、私にはまだよくわかりません。)
- 1. 開発環境
- 2. 社員XのGitHubリポジトリAを、社員Yである私のローカル環境にクローン
- 3. Gemfileを見てrubyとRailsのversionを確認
- 4. WSL2-Ubuntu20.02のrailsとrubyのversionをチェック
- 5. ubuntu20.04上のrbenv/ruby-buildをアップグレード
- 6. リポジトリAに対応したrubyをrbenvインストール
- 7. 途中で社長Xがmainブランチを更新したので、git pull origin main
- 8. bundle installとrails db:migrate
- 9. bin/devで開発サーバ立ち上げ
- 10. Ubuntuでpostgresqlの自動起動を設定しておく
- 11. GitHubとVisualStudioCode関連リンク
- 12. Rails7環境構築関連リンク
開発環境
Windows10 Pro 21H2
WSL2
Ubuntu 20.04 on Windows
git version 2.25.1
VisualStudioCode
社員XのGitHubリポジトリAを、社員Yである私のローカル環境にクローン
リポジトリAが公開されていない場合は、社員Xに依頼して、社員YのGitHubアカウントのりぽじとりAへの接続を許可してもらう必要があります。(今回は公開リポジトリなので不要でした)
Windowsマークのスタートボタンから、Ubuntu20.04 on Windowsをクリックして、WSL2 Ubuntuの画面を開き、以下を入力します。
git config --global alias.co checkout
また、cloneしたいリポジトリのページへ行き、緑色の「Code」をクリックし、「HTTPS」タブの、コピーボタンをクリックし、「https://github.com/xxxxxx/yyyyyy」のアドレスをコピーする
先ほどコピーしたアドレスを用いて、Ubuntuのターミナル画面で、以下を入力してEnter
git clone https://github.com/xxxxxx/yyyyyy
リポジトリAがローカル環境にクローン(ダウンロード)されるので、リポジトリAのディレクトリに移動して、VisualStudioCodeで開きます。
ls
cd yyyyyy
code .
VSCodeが自動的に立ち上がり、以下のような画面になりました。
Gemfileを見てrubyとRailsのversionを確認
今回は、Gemfileは以下のようになっていました。
Rails7なので、javascriptまわりが、
- importmap-rails (=> 開発環境では rails s )
- jsbundling-rails (=> 開発環境では bin/dev )
のどちらを用いているのかも確認します。
つまり、クローンしたRails7アプリは、以下のようになっていました。
ruby 3.1.2
rails 7.0.3
jsbundling-rails
cssbundling-rails
WSL2-Ubuntu20.02のrailsとrubyのversionをチェック
以前、上記のようにセットアップしたのですが、以下のコードでチェックします
ruby --version
rbenv --version
rbenv versions
つまり、ruby 3.1.2をインストールする必要があるので、rbenvでインストールします。
rbenv install 3.1.2
なんとうまくいきません。rbenvのupgradeが必要なようです。
ubuntu20.04上のrbenv/ruby-buildをアップグレード
https://mseeeen.msen.jp/rbenv-upgrade/ に従ってやります。
rm -rf .rbenv
git clone https://github.com/sstephenson/rbenv.git .rbenv
rm -rf ~/.rbenv/plugins/ruby-build
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install --list
無事、ruby 3.1.2 が出てきたので、インストールします。
リポジトリAに対応したrubyをrbenvインストール
以下のようにインストール(むちゃくちゃ時間がかかる)すると、自動でglobalに設定されます。
rbenv install 3.1.2
rbenv versions
ruby --version
途中で社長Xがmainブランチを更新したので、git pull origin main
こちら(社員Y)が環境構築で苦労している中、社長Xが元のリポジトリを更新したので、
git pull origin main
して、ローカルリポジトリを更新しました。
なお、何かファイルを変更していたけど、そのファイル変更はもうあきらめて、全部pullしちゃいたい場合は、以下のコマンドでよいらしいです。(あくまで、今までの修正がいらない場合)
git checkout .
bundle installとrails db:migrate
RubyのバージョンをGemfileに一致させることができたので、以下を入力してインストールします。
bundle install --path vendor/bundle
rails db:migrate
pg (1.4.1)がインストールできないというエラーが出たので、Ubuntuにpostgresqlをインストールします。
sudo apt-get install postgresql
もう一度、 bundle install しても、やはり、同じエラー(pgがインストールできない)が出るので、ログをもう一度見てみると、以下のような記載が
指示通り、以下を入力してから、もう一度、bundle install
sudo apt install libpq-dev
やっと、無事、bundle installできました
やはり、こういう環境構築が面倒だと、2人以上で開発するときは、Dockerでやりたいという気持ちがフツフツとわいてきます。
rails db:migrate
これがうまくいきません!
なんとなく、Ubuntu上でpostgresqlが立ち上がっていないのかなと思い、以下を入力。
sudo service postgresql start
rails db:migrate
まだダメ!
ググってみると、
https://stackoverflow.com/questions/23338356/pgconnectionbad-fatal-role-myname-does-not-exist
が出てきたので、その答えのひとつを試してみます。
やっとできました。開発環境構築だけで、本当に大変!
sudo -u postgres createuser --superuser adash333
bin/rails db:create
bin/rails db:migrate
bin/devで開発サーバ立ち上げ
Rails7アプリですが、今回はjsbundling-rails を用いているので、以下のコマンドでサーバ立ち上げです。
bin/dev
まだでした、、、
/bin/sh: 1: esbuild: not found でググってみると、
https://kobacchi.com/rails-gitclone-bindev-not-working/
よくわかりませんが、以下を入力してみます。
yarn add esbuild
そして、再度、 bin/dev すると、無事サーバが起動し、WEBブラウザで、localhost:3000 を開くと、無事、Rails7アプリを起動することができました。これは大変でした。繰り返しになりますが、複数人でアプリ開発するときは、絶対Dockerでやりたい!!!
Ubuntuでpostgresqlの自動起動を設定しておく
以下のコマンドを入れておきます。
systemctl enable postgresql
これをしないと、Ubuntuを起動したときに、毎回、
sudo service postgresql start
しないといけません。
GitHubとVisualStudioCode関連リンク
https://learn.microsoft.com/ja-jp/azure/developer/javascript/how-to/with-visual-studio-code/clone-github-repository?tabs=create-repo-integrated-terminal%2Cinitialize-repo-activity-bar%2Ccreate-branch-command-palette%2Ccommit-changes-command-palette%2Cpush-command-palette
Visual Studio Code で GitHub リポジト
リをクローンして使用する
2022/09/22
https://qiita.com/risagon/items/0cd3592b08ee058ffb80
https://miya-system-works.com/blog/detail/vscode-github/
Rails7環境構築関連リンク
https://qiita.com/yuki_0920/items/fb0b23b8d39573354ce5
更新日 2022年04月18日
Ruby on RailsでGitHubからクローンしてアプリを立ち上げるために気をつけること
https://kobacchi.com/rails-gitclone-bindev-not-working/
【Rails7】git cloneしたプロジェクトをbin/devしても動かない時の対処法
2022年9月4日
https://mseeeen.msen.jp/rbenv-upgrade/
https://zenn.dev/ryota_koba04/articles/357b5d43ab597d「ActiveRecord::ConnectionNotEstablished」に立ち向かう
https://qiita.com/yuitnnn/items/b45bba658d86eabdbb26
@yuitnnn
投稿日 2017年12月28日
更新日 2018年03月11日
新規Railsプロジェクトの作成手順まとめ
ディスカッション
コメント一覧
まだ、コメントがありません