ruby-on-rails Ruby on Rails 2.3应用程序无法加载lib和vendor目录中的文件(内置于Docker中)

vs3odd8k  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(107)

我被交给了一个不幸的任务,试图维护一个RubyonRails 2.3版应用程序(使用Ruby version 1.9.3)。我已经成功地构建了环境,并在Docker容器中运行,但它似乎没有加载/lib文件夹中的任何内容,也没有加载/vendor/gem_源文件夹。我对Rails 2的理解是,它会自动加载两个文件夹中的任何内容,但我也尝试过修改environment.rb文件,以便手动导入上述文件:

config.autoload_paths += ["#{RAILS_ROOT}/vendor"]
config.autoload_paths += ["#{RAILS_ROOT}/lib"]

字符串
这让我想到可能是我的docker配置有问题,下面是我的Dockerfile供参考:

# Set Ruby version
FROM ruby:1.9.3-p547

RUN echo "deb http://archive.debian.org/debian stretch main" > /etc/apt/sources.list

RUN apt-get update -qq && apt-get install -y --force-yes \
    gnupg \
    build-essential \
    libpq-dev \
    libid3-dev \
    nodejs \
    mysql-client \
    libmysqlclient-dev

# Rails app lives here
WORKDIR /app

# Install application gems
COPY Gemfile Gemfile.lock ./

COPY vendor/gem_source /app/vendor/gem_source
COPY vendor/plugins /app/vendor/plugins
RUN gem install bundler -v 1.17.3
RUN gem install rails -v 2.3.18
RUN gem install mysql2 -v 0.4.9 -- --with-cflags="-DHAVE_RB_THREAD_BLOCKING_REGION"
RUN bundle install

# Clean up unnecessary gems
RUN bundle clean --force

# Copy application code
COPY . .

# Entrypoint prepares the database.
RUN chmod +x /app/bin/entrypoint
ENTRYPOINT ["/app/bin/entrypoint"]

# Start the server by default
EXPOSE 3000
CMD ["./script/server", "-b", "0.0.0.0"]

u7up0aaq

u7up0aaq1#

我从来没有找到一个适当的解决方案,但我能够暂时解决的问题,通过移动/app文件夹下的所有“失踪”的文件,并重写一些加载逻辑.我仍然想知道,如果有人经历过这种情况,虽然找到了解决方案.

相关问题