[英]bin/rails doesn't respect RAILS_ENV (Rails 5.2)
我在寻找似乎是某种配置问题的指针。 也请指出我无法找到的重复问题。
我几乎完全可以肯定,我对Rails和/或捆绑器环境的内部运作的无知是应该归咎于...
因此,我使用了一个如下所示的Dockerfile来简化Rails生产设置:
FROM ruby
ENV RAILS_ENV production
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev curl ffmpeg mupdf gcc g++ make git imagemagick
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash
RUN apt-get update -qq && apt-get install -y nodejs
RUN bundle config --global frozen 1
RUN npm install -g yarn
WORKDIR /usr/src/app
COPY Gemfile Gemfile.lock ./
RUN bundle install --without development test --path vendor/bundle
COPY . .
EXPOSE 3000
当我用
$ docker run --rm -ti -e RAILS_MASTER_KEY=$RAILS_MASTER_KEY my-rails-image bash
并尝试打开一个控制台,它抱怨开发和测试组缺少了一些宝石。 老实说,我不知道从哪里开始寻找调试的方法。 我可以重写它们以在没有初始化程序的情况下启动rails看看是否是问题所在吗?
root@d23a9edca766:/usr/src/app# echo $RAILS_ENV
production
root@d23a9edca766:/usr/src/app# bin/rails c
Could not find abstract_type-0.0.7 in any of the sources
Run `bundle install` to install missing gems.
在这里找到答案: 捆绑程序错误地尝试在生产中安装“开发”和“测试”组gem
简而言之,
COPY . .
Dockerfile中的一行覆盖了.bundle/config
文件,该文件托管了该项目的所有捆绑程序选项:
---
BUNDLE_FROZEN: "true"
BUNDLE_PATH: "vendor/bundle"
BUNDLE_WITHOUT: "development:test"
所以我只是将其添加到我的.dockerignore
现在一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.