尽管我应该在Docker中安装了yarn,但当收到“ERROR: There are no scenarios; must have at least one”错误时,解决方法如下

背景

我本以为在Docker中安装了yarn,但当我尝试运行以下命令时却收到错误提示。

Dockerfile的内容

FROM ruby:2.5
RUN apt-get update && apt-get install -y \
    build-essential \
    libpq-dev \
    nodejs \
    postgresql-client \
    yarn
WORKDIR /kosare
COPY Gemfile Gemfile.lock /kosare/
RUN bundle install

执行yarn命令时出现错误。

root@5847e387581e:/kosare# yarn -v
ERROR: There are no scenarios; must have at least one.

临时解决方案

如果基本上按照参考URL中的指示来操作,问题应该会解决。
对于我的情况,因为我已经以root权限登录,所以删除了其中提到的sudo并按照顺序进行操作,问题得以解决。

删除旧的纱线

sudo apt remove cmdtest
sudo apt remove yarn

获取最新

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 yarn

确认版本

yarn -v

根本解决方案

如果按照上述的方法, 在docker中重新执行bundle install时会再次出现相同的问题。
为了解决在Dockerfile中构建的问题, 可在dockerfile中追加以下两行。

RUN curl https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

Docker文件(最终版本)

FROM ruby:2.5
RUN curl https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update && apt-get install -y \
    build-essential \
    libpq-dev \
    nodejs \
    postgresql-client \
    yarn
WORKDIR /kosare
COPY Gemfile Gemfile.lock /kosare/
RUN bundle install

如果重新进行构建,应该可以正确使用yarn。

请提供以下内容的中文释义,只需提供一种选项:

参考

以下是用中文对以上三个网址的描述:

1. 在这个链接(https://k-koh.hatenablog.com/entry/2020/04/02/143017)中,提供了有关某个主题的详细信息。
2. 在这个Github链接(https://github.com/yarnpkg/yarn/issues/7329)中,讨论了一个关于Yarn软件的问题。
3. 这个链接(https://qiita.com/MasatoraAtarashi/items/3f0317cd648ff63fa92c)包含了一篇关于某个主题的文章。