💭

(自分用メモ)最終課題2 ECサイト 環境構築 Rubocopをどこに入れるのか?

2023/01/03に公開

<この質問をした原因>
Dockerとローカルの違いがいまいち分かってなかった。

<以下本文>
■現状

表題の件、最終課題2にてRubocopの導入を実施しています。

課題提出の「CIが3本通っていることを確認してください」の状態にしたいです。

■既に試したこと、参考にしたページ

以下を参考にローカルにもRubo copをインストールしようとしています。

https://mng-camp.potepan.com/questions/dc419044-1b28-4ea7-8a5c-9a2ce25fe81d

https://mng-camp.potepan.com/questions/ca60c10f-ef52-479f-a58f-c319c678301a

https://mng-camp.potepan.com/questions/0cf5e153-ce44-456c-be77-6507cc00994e

■実際に出ているエラー

■やりたいこと

エラーを解決し、HerokuデプロイでRspec、Rubocop、CI全て自動で実施されるようにしたい

課題提出の「CIが3本通っていることを確認してください」の状態にしたい

■質問

・そもそも、localにrubocopをインストーリする必要はありますか

https://mng-camp.potepan.com/questions/ca60c10f-ef52-479f-a58f-c319c678301a

→この過去質問からは通す必要があるように見えますが、

https://mng-camp.potepan.com/questions/9e7fae1d-5143-425d-bccf-0bd0ab4deb10

→この過去質問からは通す必要がないように見えます。

・そもそも、やりたいことを達成する為に、このやり方で合っているのか?

→方向性として、やりたいことを実現するためにこのやり方で合っているのか?

→もっと簡単な方法があるのか?とんちんかんなところで詰まっていないか?

■git

https://github.com/potepancamp/Hiro-Nagai

回答
ユーザー画像
B-ri(メンター)

2022/12/10 20:19

お疲れ様です!

rubocopを通すために、ご自身の環境でrubocopを実行したいという感じですね。

結論としては、ローカル、dockerコンテナの外を指しているのであれば、インストールする必要はありません。

2番目の質問の通り、ご自身の環境のdockerコンテナ内でrubocopを実行いただくことで解決できるかと思います。

ユーザー画像
長井宏樹

2022/12/10 20:56

B-ri様

ご回答ありがとうございます。

当方の理解が未だ浅く、話が噛み合っていない状態にあると感じております。

追加質問申し訳ないですが、以下回答いただけますでしょうか。

・Rubocopを実行する環境はdocker内とLocalで選べるのでしょうか?(自身の認識では「localに入れないとDocker上で作動しない」という認識でした)

・カリキュラムではどちらで実行することを意図しているのでしょうか?(カリキュラム通り進めたいと思っています)

・当方は現在、Docker内でrubocopインストールできていない認識です(以下再度掲載します)

仮に、カリキュラムではDocker内で実行することを意図しているならば、その方法をご教授願いたいです。

ユーザー画像
B-ri(メンター)

2022/12/10 21:22

お疲れ様です!

Rubocopを実行する環境はdocker内とLocalで選べるのでしょうか

「ローカル」やが何を指しているのかが曖昧なため混乱されてしまっているのだと思います。

まず、docker(コンテナ)内というのは下記で立ち上げている開発環境のコンテナの内部を指しています。

https://mng-camp.potepan.com/curriculums/document-for-final-task-1

その上で、「ローカル」についてですが、長井様がおっしゃっているのが下記の意味

・ご自身のコンピュータ上で、dockerコンテナの外

であれば、こちらにはrubocopを入れる必要はありません。

アプリケーションはコンテナ内で起動されているため、rubocopもコンテナ内で動かす必要があります。

(上記の意味であれば、コンテナの外と内では環境が異なるので localに入れないとDocker上で作動しない も成り立たないです)

カリキュラムではどちらで実行することを意図しているのでしょうか?(カリキュラム通り進めたいと思っています)

こちらは上記通りdockerコンテナ内部を意図しています。

当方は現在、Docker内でrubocopインストールできていない認識です

その上で最後の部分ですが、Gemfileにはrubocopがあるためおそらくインストールできていると思います。

その上で、エラーが出てしまうのはまた別の理由があるかと思いますので、エラー文を調査いただきたいです!

ユーザー画像
長井宏樹

2022/12/10 22:29

B-ri様

ご回答ありがとうございます。

ご指導頂いたおかげで、進めることができております。

となりますと、カリキュラム通りに進めるとなりますと、

git addからgit push heroku testbranch:masterまでもDOCKER上で実施ということになりますでしょうか?

初回のためdocker上でgitのメルアド名前入力し、HEROKUのメルアドログインもするということでしょうか?

(gitをDOCKER上でやるというのは非常に違和感fがあり、疑心暗鬼になっている状態で申し訳ありません)

追記:上記三点目の質問は当方のタイポでした。ご指摘ありがとうございました。

ユーザー画像
B-ri(メンター)

2022/12/10 22:54

初回のためdocker上でgitのメルアド名前入力し、HEROKUのメルアドログインもするということでしょうか?

お疲れ様です!誤解がありましたら申し訳ありません、

あくまでアプリケーションがdockerで立ち上げられており、gemなどがdockerコンテナ内にあるため

rubocopはコンテナ内で実行する必要がある、というイメージです。

そのため、カリキュラムのgitなどのコマンドはdocker上、またはローカル(コンテナ外)どちらでやっていただいても特に問題ありません。

ユーザー画像
長井宏樹

2022/12/11 08:37

B-ri様

ご回答ありがとうございます。

おかげさまで理解が進んでおります。

未だ「CIが3本通っていることを確認してください」の状態にはなっていませんが、

表題の件と現状の問題点がずれてしまっているので、新たに質問スレ立てさせて頂きます。

ご指導ありがとうございました

Discussion