スポンサーリンク

GitHubリポジトリを複数人で利用(1)GitHub上のRails7アプリをWindows10-WSL2-Ubuntu20.04にクローンして開発環境構築

2022年10月8日

2人で、アプリを開発することになりました。

  • 社長X   :GitHubでリポジトリAを作成、開発
  • 私(社員)Y:社長XのGitHub上のリポジトリAをクローンして、私(社員)Yのローカルでコードを追加

流れとしては

  1. 私(社員)Yが、社長XのGitHub上のリポジトリAを、私Yのローカル環境にクローン
  2. 私のローカル環境下で、新規ブランチ “branch-YYY"を作成し、そこでコードを追加
  3. git add . -> git commit -> git pushで、"branch-YYY"を社長XのGitHub上のリポジトリA上にpush
  4. 私(社員)Yが、社長Xに、"branch-YYY" をPull Request
  5. 社長Xが、"branch-YYY" のコードを確認して、merge (“branch-YYY"ブランチ が、mainブランチにmergeされる)
  6. 私(社員)Yが、ローカルで、"branch-YYY"を削除
  7. 私(社員)Yが、社長XのGitHub上のリポジトリAnの新しいmainブランチを、私のローカル環境にクローン。ローカルで新規ブランチを作成し、新たにコードを追加

を繰り返していく流れになると思われますのでやってみます。

→やっている途中で、上記の1と2の間がすごく難しいことに気づきました。1と2の間を簡単にするためには、Dockerで環境構築した方が簡単そうだと感じました。(Dockerで環境構築したものをどうやって配布するのか、私にはまだよくわかりません。)

スポンサーリンク

開発環境

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://techracho.bpsinc.jp/hachi8833/2022_04_07/116843

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プロジェクトの作成手順まとめ

Git,Rails,Rails7

Posted by twosquirrel