ポートフォリオの作成がひと段落ついたのでAWSにデプロイしようとしたところ、node.jsの設定でどハマりしたので皆さんに情報共有していこうと思います。
#事象
以下の記事を参考にAWSで通常デプロイに挑戦しました。
【画像付きで丁寧に解説】AWS(EC2)にRailsアプリをイチから上げる方法↓
https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2
こちらの記事を参考にRailsアプリの公開編まではスムーズにいきアプリの公開をしてみたのですがurlを入力してみたところ「このサイトにアクセスできません」と表示され・・・
#ログを調べてみると
EC2インスタンスに繋がった状態で以下のコマンドを実行しログファイルを参照
[daiki@ip-10-0-0-56 log]$ tail -n 30 production.log
F, [2020-10-12T13:28:37.845307 #22722] FATAL -- : [66518e09-a517-412e-8f3c-97c588a4b2f1] ActionView::Template::Error (The asset "homes.css" is not present in the asset pipeline.
):
F, [2020-10-12T13:28:37.845424 #22722] FATAL -- : [66518e09-a517-412e-8f3c-97c588a4b2f1] 1: <% content_for :css do %>
[66518e09-a517-412e-8f3c-97c588a4b2f1] 2: <%= stylesheet_link_tag 'homes' %>
[66518e09-a517-412e-8f3c-97c588a4b2f1] 3: <% end %>
[66518e09-a517-412e-8f3c-97c588a4b2f1] 4: <%= render 'shared/flash_messages'%>
[66518e09-a517-412e-8f3c-97c588a4b2f1] 5:
F, [2020-10-12T13:28:37.845450 #22722] FATAL -- : [66518e09-a517-412e-8f3c-97c588a4b2f1]
F, [2020-10-12T13:28:37.845472 #22722] FATAL -- : [66518e09-a517-412e-8f3c-97c588a4b2f1] app/views/homes/index.html.erb:2:in `block in _app_views_homes_index_html_erb__1348361279455874858_75120'
[66518e09-a517-412e-8f3c-97c588a4b2f1] app/views/homes/index.html.erb:1:in `_app_views_homes_index_html_erb__1348361279455874858_75120'
I, [2020-10-12T13:38:07.919149 #22721] INFO -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] Started GET "/" for 126.11.108.222 at 2020-10-12 13:38:07 +0000
I, [2020-10-12T13:38:07.919848 #22721] INFO -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] Processing by HomesController#index as HTML
D, [2020-10-12T13:38:07.956165 #22721] DEBUG -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] (2.8ms) SET NAMES utf8mb4 COLLATE utf8mb4_general_ci, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
D, [2020-10-12T13:38:07.962259 #22721] DEBUG -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] Pcrpositive Load (3.0ms) SELECT `pcrpositives`.* FROM `pcrpositives` ORDER BY `pcrpositives`.`id` DESC LIMIT 1
D, [2020-10-12T13:38:07.965472 #22721] DEBUG -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] Pcrtested Load (2.8ms) SELECT `pcrtesteds`.* FROM `pcrtesteds` ORDER BY `pcrtesteds`.`id` DESC LIMIT 1
D, [2020-10-12T13:38:07.968633 #22721] DEBUG -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] Recovery Load (2.8ms) SELECT `recoveries`.* FROM `recoveries` ORDER BY `recoveries`.`id` DESC LIMIT 1
I, [2020-10-12T13:38:07.969160 #22721] INFO -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] Rendering homes/index.html.erb within layouts/application
I, [2020-10-12T13:38:07.969980 #22721] INFO -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] Rendered homes/index.html.erb within layouts/application (0.8ms)
I, [2020-10-12T13:38:07.970113 #22721] INFO -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] Completed 500 Internal Server Error in 50ms (ActiveRecord: 11.4ms)
F, [2020-10-12T13:38:07.970845 #22721] FATAL -- : [385da9dc-780c-4a4b-93ea-77683c0f5809]
F, [2020-10-12T13:38:07.970881 #22721] FATAL -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] ActionView::Template::Error (The asset "homes.css" is not present in the asset pipeline.
):
F, [2020-10-12T13:38:07.971160 #22721] FATAL -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] 1: <% content_for :css do %>
[385da9dc-780c-4a4b-93ea-77683c0f5809] 2: <%= stylesheet_link_tag 'homes' %>
[385da9dc-780c-4a4b-93ea-77683c0f5809] 3: <% end %>
[385da9dc-780c-4a4b-93ea-77683c0f5809] 4: <%= render 'shared/flash_messages'%>
[385da9dc-780c-4a4b-93ea-77683c0f5809] 5:
F, [2020-10-12T13:38:07.971197 #22721] FATAL -- : [385da9dc-780c-4a4b-93ea-77683c0f5809]
F, [2020-10-12T13:38:07.971221 #22721] FATAL -- : [385da9dc-780c-4a4b-93ea-77683c0f5809] app/views/homes/index.html.erb:2:in `block in _app_views_homes_index_html_erb__1348361279455874858_75120'
[385da9dc-780c-4a4b-93ea-77683c0f5809] app/views/homes/index.html.erb:1:in `_app_views_homes_index_html_erb__1348361279455874858_75120'
[daiki@ip-10-0-0-56 log]$
なんかasset piipelineで落ちている??
と思いもう一度、Railsアプリをプリコンパイルしてみる。
[daiki@ip-10-0-0-56 SONAERU_APP]$ bundle exec rake assets:precompile RAILS_ENV=production
Error: ENOTDIR: not a directory, open '/home/daiki/.config/yarn'
at Error (native)
at Object.fs.openSync (fs.js:642:18)
at fs.readFileSync (fs.js:510:33)
at /usr/lib/node_modules/yarn/lib/cli.js:100892:58
at Array.map (native)
at parseRcPaths (/usr/lib/node_modules/yarn/lib/cli.js:100890:78)
at Object.findRc (/usr/lib/node_modules/yarn/lib/cli.js:100904:10)
at getRcConfigForCwd (/usr/lib/node_modules/yarn/lib/cli.js:56916:74)
at /usr/lib/node_modules/yarn/lib/cli.js:92255:56
at next (native)
rake aborted!
Autoprefixer doesn't support Node v6.17.1. Update it.
/home/daiki/.rbenv/versions/2.7.0/bin/bundle:23:in `load'
/home/daiki/.rbenv/versions/2.7.0/bin/bundle:23:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
ん〜下から5行目あたりでnode.jsが古いと怒られていますね。
ということでnode.jsを最新版にしてみましょう!
以下の記事を参考にしました!
↓yumでのnodejsのバージョンアップにはまった話と解決方法
https://qiita.com/robitan/items/a684a81214767c21a560
#手順
まずは下記のコードを実行してroot状態にしておく
$ sudo su -
現在のnode.jsのバージョンを確認
$ node -v
v6.12.3
node.jsのrpmを確認。2レコード出てきたら古いほうが優先されるのが原因みたいです。
$ ll /etc/yum.repos.d/ | grep node
-rw-r--r--. 1 root root 472 Oct 21 2016 nodesource-el6.repo
-rw-r--r--. 1 root root 472 Apr 26 2016 nodesource-el.repo
よって、古いほうのrpmを削除してします。
$ rm /etc/yum.repos.d/nodesource-el.repo
一旦、yumをクリーンするコマンドを実行
$ yum clean all
再びインストールしなおします。
$ yum -y install nodejs
バージョンを確認
$ $ node -v
v12.19.0
以上