我被交给了一个不幸的任务,试图维护一个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"]
型
1条答案
按热度按时间u7up0aaq1#
我从来没有找到一个适当的解决方案,但我能够暂时解决的问题,通过移动/app文件夹下的所有“失踪”的文件,并重写一些加载逻辑.我仍然想知道,如果有人经历过这种情况,虽然找到了解决方案.