#画像のエラーを解決するのに手間取りすぎたから、備忘録メモです。
##先に結論
僕の場合はdocker-compose run --rm web yarn install
したら解決した
##環境
【環境】
・Ruby 2.6.6
・Rails 6.0.3.2
・Docker
webpackerについて参考にさせていただいた記事
##Dockerfile
FROM ruby:2.6
# install package to docker container
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev \
&& apt-get install apt-transport-https \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update && apt-get install -y yarn \
&& curl -sL https://deb.nodesource.com/setup_10.x | bash - \
&& apt-get install -y nodejs \
&& mkdir /アプリ名
WORKDIR /FANTRA
COPY Gemfile /アプリ名/Gemfile
COPY Gemfile.lock /アプリ名/Gemfile.lock
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
##確認したこと
- webpackerインストールしてるか?
- rails webpacker:install 実行ずみ
(実行すると、conflict config/webpacker.yml
が出る)
- rails webpacker:install 実行ずみ
- yarnインストールしてるか?
- 1.22.4
- nodejsインストールしてるか?
- v10.21.0
必要な物は揃っているはずなのになぜかできない。。。
##わかってなかったこと
そもそもwebpackとは?
Webpackとは、CSS、JavaScript、画像などを1つのファイルとしてまとめるためのモジュールバンドラーで、node.jsのモジュールの1つ。
yarn ないし npm はruby でいうところのbundlerで、ライブラリを管理してくれるnodejsのツールのこと。
bundle install
しないと ruby のライブラリが利用できないのと同じようにyarn install
を実行しないと、 package.json によって指定されている nodejs ライブラリがダウンロードされず実行できないらしい。
webpack はnodejs のライブラリやから、このエラーを解消するためにはyarn install
を bundle install
と同じような取り扱いで実行する必要があるらしい。
##yarn installをしてみる
$ docker-compose run --rm web yarn install
無事にエラーを解決することができました。
##メモ
DockerfileのRUNしてるものとかymlの内容とかで実行しないといけないコマンド違ってくるのかな??