Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8835

⑧Rails + Docker環境から 脱Dockerをやってみた(2020.5時点)

$
0
0

経緯

当方、某テ●クキャンプ卒の未経験初学者です。
就活のポートフォリオのRailsアプリを制作する途中でDocker環境に移行したので、AWS/ECSでデプロイしようとしていましたが、アプリのレベル、自身の理解度、経費等を考慮しCI/CDの学習に方針を変更しました。

本稿は、Docker環境のRailsアプリをgit clone(ソースのコピー)をして、Dockerを外してRails sで開発する状態に戻す作業です。
初学者の迷走ゆえ、ベストプラクティスではないと思いますが、こんなこともあるのね、という感じで見ていただけたら幸いです。

前提

・Ruby on Rails 5.2.4.2
・Ruby 2.5.1
・MySQLl:5.6 の環境でアプリ開発していた

・ Docker version 19.03.8
・ docker-compose version 1.25.4 を途中から導入した
・ docker移行直前にgit cloneしていなかったため、git cloneでリポジトリ複製から始める

・ Githubリモートリポジトリがある
・ GithubDesktopで作業する

Rails + Docker環境のアプリ・ソースコードをコピーする( git clone )

Git hub リポジトリのページを開きます
Clone or download ボタンを押して URLをコピーします
image.png

コピーする先、場所(ディレクトリ)を決めます

今回は、当方のmacPCの

user/MyApp-deproyに、MyApp-deproyフォルダを新規作成しました

ターミナルでそこに移動します

ターミナル
cdMyApp-deproy
ターミナル
GitcloneURLペースト”+“スペース名前”でコマンドを実行しますクローン元の名前はnomadcafeです今回コピーして作成する名前は”nomadcafe-subにします実行するコマンドgitclonehttps://github.com/Sakagami-Keisuke/nomadcafe.gitnomadcafe-sub

こんな感じです nomadcafe-subと中身が出来上がりました
image.png

Githubリポジトリを作成する

GitHub desktop を開き、左上の Current Repository add をクリックし、Add Existing Repository をクリックします
image.png
Choose ボタンを押し、アプリを保存しているディレクトリを選択して Add Repository ボタンを押します
image.png

ローカルリポジトリは作成できましたが、クローン元と同じリポジトリ名になってしまいました
image.png

リポジトリ名(URL)を変更する

※参考にさせていただいた記事
Gitの設定をgit configで確認・変更

viエディッタで git config を編集します

ターミナル
gitconfig--edit実行

viエディッタが開きます
こんな感じです
image.png

viエディッタ
i」キーを押して、インサートモードにしますURLを変更したい名前にしますクローン元の名前 url=https://github.com/Sakagami-Keisuke/nomadcafe.git今回の名前に修正します url=https://github.com/Sakagami-Keisuke/nomadcafe-sub.git

こんな感じです
image.png

viエディッタ
esc」キーを押して編集を終了します:wq」キー+enterキーで上書き終了します

image.png
こんな感じです
image.png

先ほど Add Existing Repository で作成した、名前を修正したいリポジトリを右クリック Removeで削除します

削除できたら、もう一度、リポジトリを作成し直します
Current Repository add をクリックし Add Existing Repository をクリック
ディレクトリを選択します
image.png
image.png

git config --edit で記述したとおりのリポジトリ名で作成できました
image.png

リモートリポジトリを作成する

ローカル側(GitHub desktop)はできたので、リモートリポジトリを作ります

Githubリモート repositoriesページ でNewボタンをクリックします
image.png

・Repository name 欄: "nomadcafe-sub" を入力
・Publicを選択
・Create Repository ボタンをクリックします
image.png

リポジトリが作成できたのでクリックして入ります
image.png

これで、ローカルとリモートのリポジトリ名とURLが一致したので、紐づけができたと思われます
image.png

READMEをちょこっとだけ編集するなどして、差分を作ってから
Github desktop で publish branchボタンを押して Push Origin します
image.png

README のタイトル
“個人制作アプリ NomadCafe” を “個人制作アプリ NomadCafe-sub” に変更したものが反映されました
image.png
これでリポジトリの作成は完了しました

Dcoker環境をやめて、Rails単体に戻す

今回、以下を削除しました
Dockerを導入した時に追加したものです
・Dockerfile
・docker-compose.yml
・entrypoint.sh
・config/database.ymlの一部記述

image.png

こんな感じです
image.png

Rails s エラー:Could not find a JavaScript runtime.

Rails が起動するか確認します

ターミナル
railss

すると以下のエラーになりました

ターミナル
CouldnotfindaJavaScriptruntime.Seehttps://github.com/rails/execjsforalistofavailableruntimes.(ExecJS::RuntimeUnavailable)

image.png

参考にさせていただいた記事
rails sコマンド実行時に「Could not find a JavaScript runtime.」とエラーが出る場合の対処法

nodejsが無いため起こるエラーのようです
以下のコマンドを実行しますが失敗します

ターミナル
yuminstallnodejs--enablerepo=epelzsh: commandnotfound: yum
ターミナル
sudoyum-yupdatePassword:sudo: yum: commandnotfound

brew install node

解決に導いてくれた記事
【開発初心者】macでyumを使いたいのですが、上手くいきません。

抜粋
yumというパッケージ管理ソフトは、
Linuxのディストリビューション(OSの方言)の「Red Hat Linux」や「CentOS」で使われています。
Red Hat社が提供、その傘下で作成、サポートしている・
AWSのデフォルトイメージでも使われ、日本ではCentOSは強いLinuxディストリビューションのDebianやスピンオフ版のUbuntuでは、
yumではなくapt-getというパッケージ管理ソフトが使われている・
Macの世界ではHomebrewが強く、
CLIツールのパッケージは大抵Homebrewを使えば簡単に導入できる

以下のコマンドを実行します

抜粋
パッケージがあるかどうか調査brewinfonodenode: stable8.9.0(bottled),HEADPlatformbuiltonV8tobuildnetworkapplications発見したのでインストールbrewinstallnode

こんな感じです
nodeのインストールができたようです
image.png
image.png

Rails の起動を確認します

ターミナル
Railss

image.png
localhost:3000にアクセスします

ActionView::Template::Error (Asset application.css was not declared to be precompiled in production.Declare links to your assets in app/assets/config/manifest.js.

すると今度は下記のエラーでした

ターミナル
ActionView::Template::Error(Asset`application.css`wasnotdeclaredtobeprecompiledinproduction.Declarelinkstoyourassetsin`app/assets/config/manifest.js`.//=linkapplication.cssandrestartyourserver):7:%titleNomadcafe8:=csrf_meta_tags9:=csp_meta_tag10:=stylesheet_link_tag'application',media: 'all','data-turbolinks-track':'reload'11:%script{:src=>"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"}12:=javascript_include_tag'application','data-turbolinks-track':'reload'13:app/views/layouts/application.html.haml:10:in`_app_views_layouts_application_html_haml___4171163319812110299_70145880673400

image.png

解決に導いてくれた記事
Sprockets::Rails::Helper::AssetNotPrecompiled in が出てコケた

config/initializers/assets.rb に下記の記述をします

ターミナルconfig/initializers/assets.rb
#省略Rails.application.config.assets.precompile+=%w( application.css )

image.png

次のコマンドを実行

rakeassets:precompile

Rails の起動を確認します

$railss

こんな感じです
image.png

localhost:3000にアクセス
無事、アプリが起動しました!
image.png

最後に

当方、
実務未経験+初学者+テッ○キャンプ卒業+転職活動中であります。
パッケージ、yum、brew、github、まだまだ経験不足でハマりました。
同一リポジトリでdockerを外す、環境を戻すことはケースとして起きにくいと思いましたが、なかなか事例が見当たらなかったので、ご参考までに投稿することにしました。

今回削除したDokerのセッティングは下記になります。
②Dockerを初めて導入してRails sする (2020.4時点)

今後も、学んだことをなるべくわかりやすく投稿したいと思います。
ありがとうございました。


Viewing all articles
Browse latest Browse all 8835

Trending Articles