経緯
当方、某テ●クキャンプ卒の未経験初学者です。
就活のポートフォリオの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フォルダを新規作成しました
ターミナルでそこに移動します
cd MyApp-deproy
Git clone “URLペースト” + “スペース 名前” でコマンドを実行します
クローン元の名前は “nomadcafe” です
今回コピーして作成する名前は”nomadcafe-sub” にします
実行するコマンド
git clone https://github.com/Sakagami-Keisuke/nomadcafe.git nomad cafe-sub
こんな感じです nomadcafe-subと中身が出来上がりました
Githubリポジトリを作成する
GitHub desktop を開き、左上の Current Repository add をクリックし、Add Existing Repository をクリックします
Choose ボタンを押し、アプリを保存しているディレクトリを選択して Add Repository ボタンを押します
ローカルリポジトリは作成できましたが、クローン元と同じリポジトリ名になってしまいました
リポジトリ名(URL)を変更する
※参考にさせていただいた記事
Gitの設定をgit configで確認・変更
viエディッタで git config を編集します
git config --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 が起動するか確認します
rails s
すると以下のエラーになりました
Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
参考にさせていただいた記事
rails sコマンド実行時に「Could not find a JavaScript runtime.」とエラーが出る場合の対処法
nodejsが無いため起こるエラーのようです
以下のコマンドを実行しますが失敗します
yum install nodejs --enablerepo=epel
zsh: command not found: yum
sudo yum -y update
Password:
sudo: yum: command not found
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を使えば簡単に導入できる
以下のコマンドを実行します
パッケージがあるかどうか調査
brew info node
node: stable 8.9.0 (bottled), HEAD
Platform built on V8 to build network applications
発見したのでインストール
brew install node
Rails の起動を確認します
Rails s
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` was not declared to be precompiled in production.
Declare links to your assets in `app/assets/config/manifest.js`.
//= link application.css
and restart your server):
7: %title Nomadcafe
8: = csrf_meta_tags
9: = csp_meta_tag
10: = 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 )
次のコマンドを実行
rake assets:precompile
Rails の起動を確認します
$rails s
localhost:3000にアクセス
無事、アプリが起動しました!
最後に
当方、
実務未経験+初学者+テッ○キャンプ卒業+転職活動中であります。
パッケージ、yum、brew、github、まだまだ経験不足でハマりました。
同一リポジトリでdockerを外す、環境を戻すことはケースとして起きにくいと思いましたが、なかなか事例が見当たらなかったので、ご参考までに投稿することにしました。
今回削除したDokerのセッティングは下記になります。
②Dockerを初めて導入してRails sする (2020.4時点)
今後も、学んだことをなるべくわかりやすく投稿したいと思います。
ありがとうございました。