質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

解決済

1回答

1233閲覧

dockerとcircleciを使ってRSpecテストするとPlease upgrade Node.jsとエラーが表示される

F.Iku

総合スコア3

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2021/12/17 14:16

dockerとcircleciを使ってRSpecテストするとPlease upgrade Node.jsとエラーが表示されます。

イメージ説明

エラーにある通り10.17.0以上のNode.jsが必要とのことなので、こちらの記事を参考に、
Dockerfileで10.17.0のNode.jsをインストールするように設定しているつもりですが反映されません。
ローカルとは勝手が異なると思うのでなかなか突破口が分からず、、
お力添えいただけると嬉しいです。

.circleci/config↓

config

1version: 2 2jobs: 3 build: 4 docker: 5 - image: circleci/ruby:2.6.3-node-browsers 6 environment: 7 - BUNDLER_VERSION: 2.2.21 8 - RAILS_ENV: test 9 - POSTGRES_USER: app_user_role 10 - PGHOST: 127.0.0.1 11 - image: circleci/postgres 12 environment: 13 - POSTGRES_USER: app_user_role 14 - POSTGRES_PASSWORD: password 15 - POSTGRES_DB: port_test 16 working_directory: ~/port 17 steps: 18 - checkout 19 - restore_cache: 20 keys: 21 - v1-dependencies-{{ checksum "Gemfile.lock" }} 22 - v1-dependencies- 23 - run: 24 name: install dependencies 25 command: | 26 gem install bundler -v 2.2.21 27 bundle install --jobs=4 --retry=3 --path vendor/bundle 28 - save_cache: 29 key: v1-dependencies-{{ checksum "Gemfile.lock" }} 30 paths: 31 - ./vendor/bundle 32 - run: 33 name: wait DB start 34 command: dockerize -wait tcp://127.0.0.1:5432 -timeout 120s 35 - run: 36 name: Setup database 37 command: | 38 bundle exec rails db:create 39 bundle exec rails db:migrate 40 bundle exec rails webpacker:install #ここでエラーが出る 41 - run: 42 name: Run rspec 43 command: bundle exec rspec 44 - run: 45 name: Run rubocop 46 command: bundle exec rubocop 47 - run: 48 name: docker-compose down 49 command: docker-compose down 50

docker-compose.yml↓

docker

1version: "3" 2services: 3 db: 4 image: postgres 5 volumes: 6 - ./tmp/db:/var/lib/postgresql/data 7 environment: 8 POSTGRES_DATABASE: app_user_role 9 POSTGRES_PASSWORD: password 10 ports: 11 - '5432:5432' 12 13 web: 14 build: . 15 command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 16 volumes: 17 - .:/port 18 ports: 19 - "3000:3000" 20 environment: 21 PGHOST: 127.0.0.1 22 DATABASE_PORT: 5432 23 DATABASE_USER: app_user_role 24 DATABASE_PASSWORD: password 25 depends_on: 26 - db

Dockerfile

1FROM ruby:2.6.3 2RUN apt-get update -qq && apt-get install -y postgresql-client 3RUN apt-get install -y nodejs npm && npm install n -g && n 10.17.0 4# ここで10.17.0のNode.jsをインストールしているつもりですが反映されません 5 6WORKDIR /port 7COPY Gemfile /port/Gemfile 8COPY Gemfile.lock /port/Gemfile.lock 9RUN gem install bundler 10RUN bundle install 11RUN gem install -v 6.1.4.1 rails 12COPY . /port 13 14COPY entrypoint.sh /usr/bin/ 15RUN chmod +x /usr/bin/entrypoint.sh 16ENTRYPOINT ["entrypoint.sh"] 17EXPOSE 3000 18 19CMD ["rails", "server", "-b", "0.0.0.0"]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

circle ci の実行で使っている docker 内の node のバージョンをあげる必要があると思われます。

  • image: circleci/ruby:2.6.3-node-browsers
  • ruby 2.6.x 系のイメージは他のバージョンもありそうだったので、そちらに更新する

例:circleci/ruby:2.6.8-node-browsers

  • circle ci のジョブの中で node version の更新をする

などの対応をすると改善される気がします

投稿2021/12/17 19:35

kiino

総合スコア539

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

F.Iku

2021/12/20 14:35 編集

circleci/ruby:2.6.8-node-browsersとRubyのバージョンアップを行うことでエラー解消することができました。本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問