LoginSignup
1
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-05-06

経緯

当方、某テ●クキャンプ卒の未経験初学者です。
就活のポートフォリオの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フォルダを新規作成しました

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

ターミナル
cd MyApp-deproy
ターミナル
Git clone  URLペースト” + “スペース 名前” でコマンドを実行します

クローン元の名前は nomadcafe です

今回コピーして作成する名前は”nomadcafe-sub にします

実行するコマンド
git clone https://github.com/Sakagami-Keisuke/nomadcafe.git nomad cafe-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 を編集します

ターミナル
git config --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 が起動するか確認します

ターミナル
rails s

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

ターミナル
Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

image.png

参考にさせていただいた記事
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

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

Rails の起動を確認します

ターミナル
Rails s 

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` 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

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

次のコマンドを実行

rake assets:precompile

Rails の起動を確認します

$rails s

こんな感じです
image.png

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

最後に

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

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

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

1
0
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
1
0