首页 > 解决方案 > 生产 dockerized rails-application 中没有日志

问题描述

我使用 dokku 来码头化和部署我的 rails 应用程序。Ruby 2.5.1、Rails 5.2.1

它工作正常,但我看不到服务器日志。

dokku logs <app> -p web并且docker logs <container_id>什么都不返回。

Dockerfile

FROM ruby:2.5.1
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main' >  /etc/apt/sources.list.d/pgdg.list
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs postgresql-client-10
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && apt-get install -y nodejs less
RUN mkdir /app
WORKDIR /app
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY . /app

在production.rb中尝试了这两个设置,但没有任何帮助

  #1
  if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger    = ActiveSupport::TaggedLogging.new(logger)
  end

  #2
  config.logger = Logger.new('/proc/1/fd/1')

档案

web: bundle exec rails s -p 5000

标签: ruby-on-railsdockerdokku

解决方案


我遇到了完全相同的问题,但在开发中。

就我而言,原因是puma 服务器本身已过时。

4.0.1->4.1.0,Rails 日志刷新不正确

升级 puma gem 后我可以看到日志。


推荐阅读