経緯
当方、某テ●クキャンプ卒の未経験初学者です。
就活のポートフォリオの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をコピーします
コピーする先、場所(ディレクトリ)を決めます
今回は、当方のmacPCの
user/MyApp-deproyに、MyApp-deproyフォルダを新規作成しました
ターミナルでそこに移動します
cdMyApp-deproy
Gitclone“URLペースト”+“スペース名前”でコマンドを実行しますクローン元の名前は“nomadcafe”です今回コピーして作成する名前は”nomadcafe-sub”にします実行するコマンドgitclonehttps://github.com/Sakagami-Keisuke/nomadcafe.gitnomadcafe-sub
こんな感じです nomadcafe-subと中身が出来上がりました
Githubリポジトリを作成する
GitHub desktop を開き、左上の Current Repository add をクリックし、Add Existing Repository をクリックします
Choose ボタンを押し、アプリを保存しているディレクトリを選択して Add Repository ボタンを押します
ローカルリポジトリは作成できましたが、クローン元と同じリポジトリ名になってしまいました
リポジトリ名(URL)を変更する
※参考にさせていただいた記事
Gitの設定をgit configで確認・変更
viエディッタで git config を編集します
gitconfig--edit実行
「i」キーを押して、インサートモードにしますURLを変更したい名前にしますクローン元の名前 url=https://github.com/Sakagami-Keisuke/nomadcafe.git今回の名前に修正します url=https://github.com/Sakagami-Keisuke/nomadcafe-sub.git
「esc」キーを押して編集を終了します「:wq」キー+enterキーで上書き終了します
先ほど Add Existing Repository で作成した、名前を修正したいリポジトリを右クリック Removeで削除します
削除できたら、もう一度、リポジトリを作成し直します
Current Repository add をクリックし Add Existing Repository をクリック
ディレクトリを選択します
git config --edit で記述したとおりのリポジトリ名で作成できました
リモートリポジトリを作成する
ローカル側(GitHub desktop)はできたので、リモートリポジトリを作ります
Githubリモート repositoriesページ でNewボタンをクリックします
・Repository name 欄: "nomadcafe-sub" を入力
・Publicを選択
・Create Repository ボタンをクリックします
これで、ローカルとリモートのリポジトリ名とURLが一致したので、紐づけができたと思われます
READMEをちょこっとだけ編集するなどして、差分を作ってから
Github desktop で publish branchボタンを押して Push Origin します
README のタイトル
“個人制作アプリ NomadCafe” を “個人制作アプリ NomadCafe-sub” に変更したものが反映されました
これでリポジトリの作成は完了しました
Dcoker環境をやめて、Rails単体に戻す
今回、以下を削除しました
Dockerを導入した時に追加したものです
・Dockerfile
・docker-compose.yml
・entrypoint.sh
・config/database.ymlの一部記述
Rails s エラー:Could not find a JavaScript runtime.
Rails が起動するか確認します
railss
すると以下のエラーになりました
CouldnotfindaJavaScriptruntime.Seehttps://github.com/rails/execjsforalistofavailableruntimes.(ExecJS::RuntimeUnavailable)
参考にさせていただいた記事
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
Rails の起動を確認します
Railss
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
解決に導いてくれた記事
Sprockets::Rails::Helper::AssetNotPrecompiled in が出てコケた
config/initializers/assets.rb に下記の記述をします
#省略Rails.application.config.assets.precompile+=%w( application.css )
次のコマンドを実行
rakeassets:precompile
Rails の起動を確認します
$railss
localhost:3000にアクセス
無事、アプリが起動しました!
最後に
当方、
実務未経験+初学者+テッ○キャンプ卒業+転職活動中であります。
パッケージ、yum、brew、github、まだまだ経験不足でハマりました。
同一リポジトリでdockerを外す、環境を戻すことはケースとして起きにくいと思いましたが、なかなか事例が見当たらなかったので、ご参考までに投稿することにしました。
今回削除したDokerのセッティングは下記になります。
②Dockerを初めて導入してRails sする (2020.4時点)
今後も、学んだことをなるべくわかりやすく投稿したいと思います。
ありがとうございました。