7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails6でEC2にデプロイする時にハマったポイント3つ

Last updated at Posted at 2020-12-17

経緯

Rails6で作ったアプリをAWSのEC2にデプロイする際にハマったのでそのポイントを書き残しておきます。

Rails6とRails5で何が違うのか?

モジュールバンドラが変更された。
モジュールバンドラとはCSS、JavaScript、画像などを一つのファイルとしてまとめるためのもの。Rails6ではWebpackerが標準のモジュールバンドラとなりました。Webpackerとはwebpackをrailsで使用するためのGemで、Webpackerを使うためにはwebpackをインストールしなければなりません。そのためRails5でAWSにデプロイする時よりもRails6では手順が多くなります。

環境

  • Rails 6.0.3.2
  • ruby 2.7.1
  • DB mySQL 8.0.22
  • OS amazon linux2

状況

  • EC2内の環境構築は終わっている(DBの起動、githubからアプリのclone、webサーバー・アプリケーションサーバーの起動など)
  • bundle exec rails assets:precompileでエラーが起きている。

1 Node.jsについてのエラー

Webpacker requires Node.js ">=10.17.0" and you are using v6.17.1

今使用しているNode.jsのバージョンではWebpackerを使うことができないとのエラー。
なので新しいバージョンのNode.jsをインストールします。
Node.jsのインストールに関しては下記の記事が参考になりました。
https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html

下のコマンドで 現在のバージョンが確認できます。

nvm current
13.8.0

2 Yarnについてのエラー

webpackをインストールするには

yarnのインストール(著者はマシンイメージにAmazon Linux2を使ったのでそのリンクを貼っておきます。)yarnとはjavascriptのパッケージ管理ツールです。webpackをインストールするために必要になります。Yarnのインストールに関しては下記の記事が参考になりました。
https://classic.yarnpkg.com/en/docs/install#centos-stable

下のコマンドでバージョンが表示されていればインストールされています。

yarn --version
1.22.5

パッケージをインストール(package.jsonに書いてあるパッケージをインストールしてくれます。)

yarn install 

3 エラー出なくなったけどjavascriptが反映されない場合

package.jsonのdevDependencies

devDependencies中に書かれているパッケージは開発・テスト環境でしか使うことができません。なので本番環境で使いたいパッケージでがdevDependenciesに書かれている場合は外に移動してあげる必要があります。

※自分の場合webpackdevDependenciesに書かれていたので、本番環境でjavascriptやfont awesomeのアイコンが反映されない、本来routes.rbでpostで定義していた通信が、getで行われるといったエラーが起きました。

参考

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?