💨
rails webpacker:installでWebpacker requires Yarn ">=1 <2"のエラー解決
概要
Rails 6.1.1をDockerで立てたところ、rails webpacker:install
時にWebpacker requires Yarn ">=1 <2"
でインストールに躓いたのでメモ
原因
apt-get install -y nodejs yarn
をDockerfileで指定し、yarnが入っていると思ったら、うまく入っていなかった。
備考
また、またrails newして入るwebpacker5系ではyarnの2系はサポートされていないため、yarnはstable版を入れるようにします。
issueを見たところ、こちらのPRで解決したようですが、時系列的にWebpacker5系では反映がまだのよう。
Webpackerの6系がデフォルトになるとyarnの2系(コードネーム: berry)でも使えるようになってくるかと考えます。
Webpackerバージョン一覧
成果物
FROM ruby:2.7.2-slim-buster
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
RUN apt-get update -qq && \
apt-get install -y curl gnupg2 && \
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 -qq && apt-get install -y nodejs yarn
ADD ./Gemfile Gemfile
ADD ./Gemfile.lock Gemfile.lock
RUN bundle --jobs 8
WORKDIR /app
COPY . /app
エラーとか
apt-key output should not be parsed
-> ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
を入れました
E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
-> エラーの通りgnupg2を入れました
また、公式の方ではsudoを使用しているので、Dockerの場合は抜きましょう
sudo apt-key
sudo tee
$ docker-compose run --rm app rails webpacker:install
(..省略..)
Webpacker successfully installed 🎉 🍰
参考
Discussion