ruby-on-rails - Rails无法在Docker上启动

标签 ruby-on-rails docker docker-compose dockerfile

我正在尝试将我的rails应用程序设置为使用docker运行。它不断与Could not find rake-12.3.2 in any of the sources (Bundler::GemNotFound)崩溃

Docker文件

FROM ruby:2.6.1

RUN apt-get update -yqq && \
  apt-get install -yqq --no-install-recommends \
  nodejs \
  nano

COPY Gemfile* /usr/src/app/
WORKDIR /usr/src/app
RUN bundle install
RUN gem install foreman
RUN gem install rake -v 12.3.2

COPY . /usr/src/app/

CMD [ "bin/rails", "s", "-b", "0.0.0.0" ]

.docker-compose.yml
version: '3'

services:
  postgres:
    image: 'postgres:10.3-alpine'
    volumes:
      - 'postgres:/var/lib/postgresql/data'
    env_file:
      - '.env'

  redis:
    image: 'redis:4.0-alpine'
    command: redis-server --requirepass yourpassword
    volumes:
      - 'redis:/data'

  rails:
    depends_on:
      - 'postgres'
      - 'redis'
    build: .
    ports:
      - '3000:3000'
    volumes:
      - '.:/usr/src/app'
    env_file:
      - '.env'

volumes:
  redis:
  postgres:

config / boot.rb
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)

require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap/setup' if RUBY_PLATFORM =~ /darwin/

日志
rails_1     | /usr/local/lib/ruby/site_ruby/2.6.0/bundler/spec_set.rb:91:in `block in materialize': Could not find rake-12.3.2 in any of the sources (Bundler::GemNotFound)
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler/spec_set.rb:85:in `map!'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler/spec_set.rb:85:in `materialize'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler/definition.rb:170:in `specs'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler/definition.rb:237:in `specs_for'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler/definition.rb:226:in `requested_specs'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler/runtime.rb:108:in `block in definition_method'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler/runtime.rb:20:in `setup'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler.rb:107:in `setup'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/bundler/setup.rb:20:in `<top (required)>'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
rails_1     |   from /usr/local/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
rails_1     |   from /usr/src/app/config/boot.rb:3:in `<top (required)>'
rails_1     |   from bin/rails:3:in `require_relative'
rails_1     |   from bin/rails:3:in `<main>'

最佳答案

看来您正在尝试删除最新的rake版本。在这种情况下,您可以删除版本声明并使其自动解析。

有什么理由不在您的Gemfile中?另外,您正在启动的Rails应用程序将包含对rake的依赖。您不需要安装rake。

关于ruby-on-rails - Rails无法在Docker上启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55507656/

相关文章:

vue.js - axios、nuxt 和 docker 的奇怪行为

Docker Compose 挂载 Windows 文件夹

python - NetfilterQueue 在 docker 容器中不起作用

linux - 如何保护 docker-compose 文件中的凭据

ruby-on-rails - rails : how does background file upload work?

javascript - 使用 webpack-dev-server 启动时,Docker 容器未按预期发布端口

azure - 如何使用 azure 管道变量为我的 docker 镜像设置环境变量?

ruby-on-rails - 如何使用github repo作为CDN服务器上传 Assets 文件?

ruby-on-rails - 无法使用:text in typed_store

ruby-on-rails - 更新到 gem 1.8.1 时出现 ruby​​onrails 错误