Git管理中のRailsプロジェクトをCloud9に環境構築

##きっかけ
元々MacOS環境で作成していたRailsアプリをWindowsでも作業したいと思ったが、WindowsでやるならAWSでやってみたら簡単じゃないかということで久しぶりにCloud9で環境構築をした。

##環境
AWS Cloud9
Ruby 2.7.0
Ruby on Rails 6.0.3
Chrome（ブラウザは何でもいい）

##Cloud9にインスタンスを作成

AWSへのIAMユーザーでサインインは済ませておく。（AWSを扱う上で非常に大切。）
サービスの中の下の方にCloud9があるのでクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/99a16a4b-7348-7707-1282-635a60c50c97.png)

環境を作るボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/dbaafa92-b3f7-caab-ab04-5da7ff35b1b4.png)

Nameに好きなアプリ名を入れる。すでにGit管理されているプロジェクトの名前でいいでしょう。
今回はSample_appとしました。その後Next step。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/edb21de5-7d69-849e-e8c5-642ffb87f709.png)

セッティングの中のPlatformはUbuntu Serverを選択。その他はデフォルトでOK。
Rails6を使うときはSQLite3のバージョンの都合でAmazon Linuxでは無理なため決して選ばないように。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/b1f0d4be-bb76-ff71-9b8f-55562f86e0f3.png)
そしてNext step。

確認画面に移動するので、Crreate environment!
しばらくすると以下のような画面になってまずはプログラムを置く場所を作りました。このタブは不要なので消してOK。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/0ea682e2-8366-311b-e0cc-d50a86cf4b8b.png)




## プログラムをクローンする
＋ボタンをクリックしてNew Terminalを選択。ターミナルが立ち上がります。
以下を行うことでドキュメントのダウンロードを行わないので、インストールが早まるそうです。

```
$ echo "gem: --no-document" >> ~/.gemrc
```
クローン！

```
$ git clone GitリポジトリのURL
```
クローン出来ました。
では、クローンしたプログラムのディレクトリに移動します。

```
$ cd プログラムのディレクトリ名
```
そうすると、以下のように注意を促されます。

```
Required ruby-2.7.0 is not installed.
To install do: 'rvm install "ruby-2.7.0"'
```
Ruby 2.7.0が必要だよ！

## Ruby 2.7.0のインストールを行う
今回使用したいRubyのバージョンは2.7.0、Railsは6.0.2。開発中のプログラムに合わせる。
デフォルトでインストールされているRubyとバージョンが違うので、この環境にインストールします。
素直に行きます。

```
$ rvm install "ruby-2.7.0"
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/f7216e7d-4342-c2ca-12d2-d7ea9e3619be.png)
OK。

## YARNのダウンロードとインストール

```
$ source <(curl -sL https://cdn.learnenough.com/yarn_install)
$ yarn install --check-files
```
上記がうまくいったら下のコマンドはスキップしてBundlerのインストールへ。
これでうまくいかないこともあるので、以下でも可能。

```
$ curl -o- -L https://yarnpkg.com/install.sh | bash
```
以下のような画面が出て、インストールが完了。新しいターミナルを開いたら使えるよって書いてありますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/e72eb8e2-ecbf-9ea3-8ffb-fb596b0d85f0.png)

では、新しいターミナルを＋ボタンを押して開いてみます。

```
$ yarn --version
```

1.22.5と出たので、インストールOK。

## Railsなどのgemをインストール

まずはBundler のインストールから。プログラムのGemfileの内容によってちょっと時間かかります。

```
$ bundle update
$ bundle install
```
Railsがインストールされているか確認します。

```
$ rails --version
```
6.0.3.1と出たのでOK。

Rails6 から特有のwebpackerをインストールします。

```
$ rails webpacker:install
```
何々？コンフリクトだと？YでOK。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/7f75b1a0-4b21-199c-ee77-c15401dd4379.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/33493863-efa3-0bf4-c8be-f66d6adfcd75.png)
よし。OK。

## Cloud9の開発環境で画面にアクセスできるようにする
以下のファイルに追記します。画面確認のためにはブラウザでCloud9の環境にアクセスする必要があるので。
config/environments/development.rb
一番下のendの一段上。

```
config.hosts.clear
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/5b8edd06-69ea-1b82-b41f-cc75c281dc85.png)

既存のプロジェクトなので以下のコマンドを忘れずに。

```
$ rails db:migrate
```

ついにプログラム起動！

```
$ rails s
```


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/65cb06d1-d382-8e05-abd2-273a0904f255.png)


画面を確認するには上の方のPreviewタブ＞Preview Running Applicationをクリック。
その後赤枠部分をクリックするとブラウザが別タブで起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/5cd8a3c8-bded-6090-6e89-e2c0fa88a93a.png)
よし！この画面が今回利用したプログラムのデフォルト画面です。これが出たので、この調子で開発が進められます！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246652/a6e3419b-22af-6fae-31a4-f3e8c187798c.png)






##以下のサイトを運営しています。
https://dokusyo-no-wa.com/
こちらの開発をMacとWindowsPCと両方でやれたら便利だなと思ったのがきっかけ。


##参考記事
https://skillhub.jp/courses/134/lessons/785 (Cloud9でRails6の準備)
https://happy-teeth.hatenablog.com/entry/2019/09/17/110208 (SQLite3を利用するにはAmazon Linuxではできない。)
https://qiita.com/8zca/items/175efb0612070530d186 (CentOS環境でRails6.0をSQLite3 (>=3.8)で動かす)