前提・実現したいこと
docker環境,railsアプリをcircleCIでbuildしているとGemNotFoundExceptionのエラーが出てしまいます。下記記事を参考にbuild, rspec, rubocopをクリアしたら自動でdeployされるようにしたいです。
https://qiita.com/g_ayushi/items/276b93d8e1a61a9f97b3
発生している問題・エラーメッセージ
Traceback (most recent call last): 2: from /usr/local/bin/bundle:23:in `<main>' 1: from /usr/local/lib/ruby/site_ruby/2.5.0/rubygems.rb:308:in `activate_bin_path' /usr/local/lib/ruby/site_ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
該当のソースコード
config.yml
version: 2.1 orbs: ruby-orbs: sue445/ruby-orbs@1.6.0 heroku: circleci/heroku@1.0.1 workflows: version: 2.1 build: jobs: - rspec - rubocop - heroku_deploy: requires: - rspec - rubocop executors: default: working_directory: ~/okonomiyakidb docker: - image: ruby:2.5.0-stretch environment: BUNDLE_PATH: vendor/bundle RAILS_ENV: test BUNDLER_VERSION: 2.2.22 jobs: build: executor: default steps: - checkout - bundle-install rubocop: executor: default steps: - preparate - run: name: Rubocop command: bundle exec rubocop --require rubocop-airbnb rspec: executor: default steps: - preparate - run: bundle exec rails db:create - run: bundle exec rails db:schema:load - run: name: Rspec command: bundle exec rspec heroku_deploy: executor: heroku/default parameters: app-name: default: $HEROKU_APP_NAME_PRD type: string post-deploy: default: - run: command: heroku run rails db:migrate --app $HEROKU_APP_NAME_PRD type: steps steps: - checkout - heroku/install - heroku/deploy-via-git: app-name: << parameters.app-name >> - steps: << parameters.post-deploy >> commands: bundle-install: steps: - ruby-orbs/bundle-install: bundle_clean: true bundle_extra_args: '' bundle_gemfile: Gemfile bundle_jobs: 4 bundle_path: vendor/bundle bundle_retry: 3 cache_key_prefix: v1-bundle-dependencies restore_bundled_with: true preparate: steps: - checkout - bundle-install
dockerfile
FROM ruby:3.0.2 RUN apt-get update -qq && apt-get install -y --no-install-recommends nodejs default-mysql-client && apt-get clean && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y curl apt-transport-https wget && \ 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 RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ apt-get install -y nodejs RUN mkdir /okonomiyakidb WORKDIR /okonomiyakidb COPY Gemfile /okonomiyakidb/Gemfile COPY Gemfile.lock /okonomiyakidb/Gemfile.lock RUN bundle install RUN rails webpacker:install COPY . /okonomikakidb COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 CMD ["rails", "server", "-b", "0.0.0.0"]
試したこと
下記記事を参考に、dockerfileのRun bundle installの前にRUN gem install bundlerを記述しました。
config.ymlには- ruby-orbs/bundle-install:の前に
- run:
name: bundler install
command: |
gem install bundler
を記載しましたがエラーが解決できませんでした。
https://qiita.com/kenji__n/items/2572f96900981e0437da
コンテナに入ってgem listでbundlerのversionを確認しますとbundler (default: 2.2.22)でした。
gemfile.lockのbundlerのversionとも一致しています。
補足情報(FW/ツールのバージョンなど)
MacBook Pro (13-inch, 2020, Two Thunderbolt 3 ports)
詳細なerrorはこちらをご参照ください。
コードはこちらに載せてあります。
どなたかよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。