簡體   English   中英

bin / rails不尊重RAILS_ENV(Rails 5.2)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM