Как заставить конвейер Bitbucket находить рейк при инициализации db в проекте ruby on rails? - PullRequest
0 голосов
/ 29 мая 2020

Я не уверен, проблема ли это в битбакете или в проблеме docker, поскольку файл битбакета выглядит так, как будто он может использовать docker -compose / docker за кулисами. Однако я нигде не мог найти эту точную проблему, и решения, которые я нашел, не работали. Я не слишком уверен в добавленном мной разделе окружения. Я добавил это в очередной попытке заставить его работать. Это мой bitbucket-pipelines.yml

image: ruby:2.5.1

environment:
  - BUNDLE_PATH=vendor/bundle

pipelines:
  default:
    - step:
        name: Bundle Install
        caches:
          - bundler
        script:
          - apt-get update
          - apt-get install -y qt5-default libqt5webkit5-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-x
          - export DATABASE_URL=postgresql://test_user:test_user_password@localhost/pipelines
          - bundle install --binstubs
          - bundle install --path vendor/bundle
        services:
          - redis
          - postgres
    - step:
        name: Initialize databases
        caches:
          - bundler
        script:
          - RAILS_ENV=development bundle exec rake db:setup
          - RAILS_ENV=test bundle exec rake db:test:prepare
        services:
          - postgres
          - redis
    - step:
        name: Test
        caches:
          - bundler
        script:
          - bundle exec rake
        services:
          - postgres
          - redis

definitions:
  services:
    postgres:
      image: postgres
      environment:
        POSTGRES_DB: pipelines
        POSTGRES_USER: test_user
        POSTGRES_PASSWORD: test_user_password
    redis:
      image: redis
  caches:
    bundler: vendor/bundle

Когда он доходит до шага initialize database, он не может найти команду rake:

+ RAILS_ENV=development bundle exec rake db:setup
bundler: failed to load command: rake (/usr/local/bin/rake)
Bundler::GemNotFound: Could not find rake-12.3.3 in any of the sources
...