title: rails can't find rake gem
body: <p>I have a basic Rails app running in docker.  I can start it up just fine and serve responses.  I can run <code>rake -T</code> just fine.  But I cannot run a Rails generate command. It fails telling me <code>Could not find rake-12.3.1 in any of the sources</code></p>
  
  <pre><code>$ docker-compose run main bundle exec rails generate controller Welcome index
  Starting cognitopoc_db_1 ... done
  Could not find rake-12.3.1 in any of the sources
  Run `bundle install` to install missing gems.
  </code></pre>
  
  <p>Here is my bundle env:</p>
  
  <pre><code>$ docker-compose run main bundle env 
  Starting cognitopoc_db_1 ... done
  ## Environment
  
  Bundler       1.16.1
    Platforms   ruby, x86_64-linux
  Ruby          2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
    Full Path   /usr/local/bin/ruby
    Config Dir  /usr/local/etc
  RubyGems      2.7.6
    Gem Home    /usr/local/bundle
    Gem Path    /root/.gem/ruby/2.5.0:/usr/local/lib/ruby/gems/2.5.0:/usr/local/bundle
    User Path   /root/.gem/ruby/2.5.0
    Bin Dir     /usr/local/bundle/bin
  Tools         
    Git         2.11.0
    RVM         not installed
    rbenv       not installed
    chruby      not installed
  
  ## Bundler Build Metadata
  
  Built At          2017-12-21
  Git SHA           0034ef341
  Released Version  true
  
  ## Bundler settings
  
  path
    Set for your local app (/usr/local/bundle/config): "vendor/cache"
    Set via BUNDLE_PATH: "/usr/local/bundle"
  jobs
    Set for your local app (/usr/local/bundle/config): "4"
  bin
    Set via BUNDLE_BIN: "/usr/local/bundle/bin"
  silence_root_warning
    Set via BUNDLE_SILENCE_ROOT_WARNING: true
  app_config
    Set via BUNDLE_APP_CONFIG: "/usr/local/bundle"
  gemfile
    Set via BUNDLE_GEMFILE: "/myapp/Gemfile"
  
  ## Gemfile
  
  ### Gemfile
  
  ruby
  source 'https://rubygems.org'
  
  git_source(:github) do |repo_name|
    repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?('/')
    "https://github.com/#{repo_name}.git"
  end
  
  gem 'coffee-rails', '~&gt; 4.2'
  gem 'jbuilder', '~&gt; 2.5'
  gem 'pg', '&gt;= 0.18', '&lt; 2.0'
  gem 'puma', '~&gt; 3.7'
  gem 'rails', '~&gt; 5.1.6'
  gem 'sass-rails', '~&gt; 5.0'
  gem 'turbolinks', '~&gt; 5'
  gem 'uglifier', '&gt;= 1.3.0'
  
  # Use Redis adapter to run Action Cable in production
  # gem 'redis', '~&gt; 4.0'
  
  # Use ActiveModel has_secure_password
  # gem 'bcrypt', '~&gt; 3.1.7'
  
  group :development, :test do
    gem 'byebug', platforms: %i[mri mingw x64_mingw]
    gem 'capybara', '~&gt; 2.13'
    gem 'selenium-webdriver'
  end
  
  group :development do
    gem 'listen', '&gt;= 3.0.5', '&lt; 3.2'
  
    # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
    gem 'spring'
    gem 'spring-watcher-listen', '~&gt; 2.0.0'
  end
  
  ### Gemfile.lock
  
  GEM
    remote: https://rubygems.org/
    specs:
      actioncable (5.1.6)
        actionpack (= 5.1.6)
        nio4r (~&gt; 2.0)
        websocket-driver (~&gt; 0.6.1)
      actionmailer (5.1.6)
        actionpack (= 5.1.6)
        actionview (= 5.1.6)
        activejob (= 5.1.6)
        mail (~&gt; 2.5, &gt;= 2.5.4)
        rails-dom-testing (~&gt; 2.0)
      actionpack (5.1.6)
        actionview (= 5.1.6)
        activesupport (= 5.1.6)
        rack (~&gt; 2.0)
        rack-test (&gt;= 0.6.3)
        rails-dom-testing (~&gt; 2.0)
        rails-html-sanitizer (~&gt; 1.0, &gt;= 1.0.2)
      actionview (5.1.6)
        activesupport (= 5.1.6)
        builder (~&gt; 3.1)
        erubi (~&gt; 1.4)
        rails-dom-testing (~&gt; 2.0)
        rails-html-sanitizer (~&gt; 1.0, &gt;= 1.0.3)
      activejob (5.1.6)
        activesupport (= 5.1.6)
        globalid (&gt;= 0.3.6)
      activemodel (5.1.6)
        activesupport (= 5.1.6)
      activerecord (5.1.6)
        activemodel (= 5.1.6)
        activesupport (= 5.1.6)
        arel (~&gt; 8.0)
      activesupport (5.1.6)
        concurrent-ruby (~&gt; 1.0, &gt;= 1.0.2)
        i18n (&gt;= 0.7, &lt; 2)
        minitest (~&gt; 5.1)
        tzinfo (~&gt; 1.1)
      addressable (2.5.2)
        public_suffix (&gt;= 2.0.2, &lt; 4.0)
      arel (8.0.0)
      builder (3.2.3)
      byebug (10.0.2)
      capybara (2.18.0)
        addressable
        mini_mime (&gt;= 0.1.3)
        nokogiri (&gt;= 1.3.3)
        rack (&gt;= 1.0.0)
        rack-test (&gt;= 0.5.4)
        xpath (&gt;= 2.0, &lt; 4.0)
      childprocess (0.9.0)
        ffi (~&gt; 1.0, &gt;= 1.0.11)
      coffee-rails (4.2.2)
        coffee-script (&gt;= 2.2.0)
        railties (&gt;= 4.0.0)
      coffee-script (2.4.1)
        coffee-script-source
        execjs
      coffee-script-source (1.12.2)
      concurrent-ruby (1.0.5)
      crass (1.0.3)
      erubi (1.7.1)
      execjs (2.7.0)
      ffi (1.9.23)
      globalid (0.4.1)
        activesupport (&gt;= 4.2.0)
      i18n (1.0.0)
        concurrent-ruby (~&gt; 1.0)
      jbuilder (2.7.0)
        activesupport (&gt;= 4.2.0)
        multi_json (&gt;= 1.2)
      listen (3.1.5)
        rb-fsevent (~&gt; 0.9, &gt;= 0.9.4)
        rb-inotify (~&gt; 0.9, &gt;= 0.9.7)
        ruby_dep (~&gt; 1.2)
      loofah (2.2.2)
        crass (~&gt; 1.0.2)
        nokogiri (&gt;= 1.5.9)
      mail (2.7.0)
        mini_mime (&gt;= 0.1.1)
      method_source (0.9.0)
      mini_mime (1.0.0)
      mini_portile2 (2.3.0)
      minitest (5.11.3)
      multi_json (1.13.1)
      nio4r (2.3.0)
      nokogiri (1.8.2)
        mini_portile2 (~&gt; 2.3.0)
      pg (1.0.0)
      public_suffix (3.0.2)
      puma (3.11.3)
      rack (2.0.4)
      rack-test (1.0.0)
        rack (&gt;= 1.0, &lt; 3)
      rails (5.1.6)
        actioncable (= 5.1.6)
        actionmailer (= 5.1.6)
        actionpack (= 5.1.6)
        actionview (= 5.1.6)
        activejob (= 5.1.6)
        activemodel (= 5.1.6)
        activerecord (= 5.1.6)
        activesupport (= 5.1.6)
        bundler (&gt;= 1.3.0)
        railties (= 5.1.6)
        sprockets-rails (&gt;= 2.0.0)
      rails-dom-testing (2.0.3)
        activesupport (&gt;= 4.2.0)
        nokogiri (&gt;= 1.6)
      rails-html-sanitizer (1.0.4)
        loofah (~&gt; 2.2, &gt;= 2.2.2)
      railties (5.1.6)
        actionpack (= 5.1.6)
        activesupport (= 5.1.6)
        method_source
        rake (&gt;= 0.8.7)
        thor (&gt;= 0.18.1, &lt; 2.0)
      rake (12.3.1)
      rb-fsevent (0.10.3)
      rb-inotify (0.9.10)
        ffi (&gt;= 0.5.0, &lt; 2)
      ruby_dep (1.5.0)
      rubyzip (1.2.1)
      sass (3.5.6)
        sass-listen (~&gt; 4.0.0)
      sass-listen (4.0.0)
        rb-fsevent (~&gt; 0.9, &gt;= 0.9.4)
        rb-inotify (~&gt; 0.9, &gt;= 0.9.7)
      sass-rails (5.0.7)
        railties (&gt;= 4.0.0, &lt; 6)
        sass (~&gt; 3.1)
        sprockets (&gt;= 2.8, &lt; 4.0)
        sprockets-rails (&gt;= 2.0, &lt; 4.0)
        tilt (&gt;= 1.1, &lt; 3)
      selenium-webdriver (3.11.0)
        childprocess (~&gt; 0.5)
        rubyzip (~&gt; 1.2)
      spring (2.0.2)
        activesupport (&gt;= 4.2)
      spring-watcher-listen (2.0.1)
        listen (&gt;= 2.7, &lt; 4.0)
        spring (&gt;= 1.2, &lt; 3.0)
      sprockets (3.7.1)
        concurrent-ruby (~&gt; 1.0)
        rack (&gt; 1, &lt; 3)
      sprockets-rails (3.2.1)
        actionpack (&gt;= 4.0)
        activesupport (&gt;= 4.0)
        sprockets (&gt;= 3.0.0)
      thor (0.20.0)
      thread_safe (0.3.6)
      tilt (2.0.8)
      turbolinks (5.1.0)
        turbolinks-source (~&gt; 5.1)
      turbolinks-source (5.1.0)
      tzinfo (1.2.5)
        thread_safe (~&gt; 0.1)
      uglifier (4.1.8)
        execjs (&gt;= 0.3.0, &lt; 3)
      websocket-driver (0.6.5)
        websocket-extensions (&gt;= 0.1.0)
      websocket-extensions (0.1.3)
      xpath (3.0.0)
        nokogiri (~&gt; 1.8)
  
  PLATFORMS
    ruby
  
  DEPENDENCIES
    byebug
    capybara (~&gt; 2.13)
    coffee-rails (~&gt; 4.2)
    jbuilder (~&gt; 2.5)
    listen (&gt;= 3.0.5, &lt; 3.2)
    pg (&gt;= 0.18, &lt; 2.0)
    puma (~&gt; 3.7)
    rails (~&gt; 5.1.6)
    sass-rails (~&gt; 5.0)
    selenium-webdriver
    spring
    spring-watcher-listen (~&gt; 2.0.0)
    turbolinks (~&gt; 5)
    uglifier (&gt;= 1.3.0)
  
  BUNDLED WITH
     1.16.1
  </code></pre>
  
  <p>and here is my Gemfile:</p>
  
  <pre><code>source 'https://rubygems.org'
  
  git_source(:github) do |repo_name|
    repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?('/')
    "https://github.com/#{repo_name}.git"
  end
  
  gem 'coffee-rails', '~&gt; 4.2'
  gem 'jbuilder', '~&gt; 2.5'
  gem 'pg', '&gt;= 0.18', '&lt; 2.0'
  gem 'puma', '~&gt; 3.7'
  gem 'rails', '~&gt; 5.1.6'
  gem 'sass-rails', '~&gt; 5.0'
  gem 'turbolinks', '~&gt; 5'
  gem 'uglifier', '&gt;= 1.3.0'
  
  group :development, :test do
    gem 'byebug', platforms: %i[mri mingw x64_mingw]
    gem 'capybara', '~&gt; 2.13'
    gem 'selenium-webdriver'
  end
  
  group :development do
    gem 'listen', '&gt;= 3.0.5', '&lt; 3.2'
    gem 'spring'
    gem 'spring-watcher-listen', '~&gt; 2.0.0'
  end
  </code></pre>
  
  <p>Here is the Dockerfile:</p>
  
  <pre><code>FROM ruby:2.5
  
  ARG DEBIAN_FRONTEND=noninteractive
  
  RUN apt-get update -qq \
    &amp;&amp; apt-get install -y \
      apt-utils \
      build-essential \
      nodejs
  
  RUN mkdir /myapp
  WORKDIR /myapp
  COPY Gemfile* /myapp/
  RUN bundle install --path vendor/cache  --jobs=4
  
  COPY . /myapp
  
  CMD bundle exec rails s -p 3000 -b '0.0.0.0'
  </code></pre>
  
  <p>and here is the compose file:</p>
  
  <pre><code>version: '3'
  
  services:
  
    db:
      image: postgres
      volumes:
        - ./pg_data:/var/lib/postgresql/data
    main:
      build: .
      volumes:
        - .:/myapp
      ports:
        - "3000:3000"
      depends_on:
        - db
  </code></pre>
  
  <p>so why would I be able to run <code>rake -T</code> bunt not <code>rails generate</code>?</p>