Devise在Docker中找不到“Warden :: Proxy”

我find了一些关于这个问题的答案。 我从Docker容器中加载Web时遇到此错误。

我试着在这里build议什么

Helper Devise:根据请求环境找不到“Warden :: Proxy”实例,但没有成功

这是我的Dockerfile

FROM ruby:2.4.0 ENV PHANTOM_JS="phantomjs-2.1.1-linux-x86_64" RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get upgrade -y && \ apt-get install -y rake less rsync locales build-essential chrpath libpq-dev libxml2-dev libxslt1-dev libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev qt5-default libqt5webkit5-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-x nodejs yarn pdftk && \ curl -L -O https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 && \ tar xvjf $PHANTOM_JS.tar.bz2 && \ mv $PHANTOM_JS /usr/local/share && \ ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin && \ mkdir -p /root/.phantomjs/2.1.1/x86_64-linux/bin && \ ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /root/.phantomjs/2.1.1/x86_64-linux/bin/phantomjs && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* RUN sed -i "s/^#\ \+\(en_US.UTF-8\)/\1/" /etc/locale.gen RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 ENV LANGUAGE en_US:en ENV RAILS_ENV=development ENV BUNDLE_PATH /box RUN mkdir /app WORKDIR /app COPY Gemfile Gemfile.lock ./ RUN bundle install COPY package.json ./ RUN yarn install COPY . . CMD puma -C config/puma.rb 

当我创build数据库的图像(postgresql)和rails服务器的映像时,我有一个docker composer文件。

当所有的容器被加载,我去我的浏览器,我得到这个在terminal:

故障安全响应期间出现错误:Devise在您的请求环境中找不到Warden::Proxy实例。 确保你的应用程序按预期加载Devise和Warden,并且Warden::Manager中间件存在于你的中间件堆栈中。 如果您在其中一个testing中看到了这个,请确保您的testing正在执行Rails中间件堆栈,或者您的testing正在使用Devise::Test::ControllerHelpers模块将request.env['warden']对象注入您。

注意:我在本地和Docker中使用Ruby 2.4.0