Обнаружение перехода на летнее время в Ruby on Rails не работает в недавнем контейнере ruby:2.7.1-alpine
Рубин на рельсах с недавним
ruby:2.7.1-alpine
контейнер, прерывает поддержку перехода на летнее время в часовом поясе:
irb(main):004:0> Time.zone.to_s
=> "(GMT+01:00) Europe/Berlin"
irb(main):005:0> Time.zone.parse("2020-08-27").zone
=> "CEST"
irb(main):006:0> Time.zone.parse("2020-12-27").zone
=> "CEST"
2020-12-27 должен быть CET из-за перехода на летнее время. При локальной установке ruby и предыдущих сборках контейнера он работал и возвращал:
irb(main):006:0> Time.zone.to_s
=> "(GMT+01:00) Europe/Berlin"
irb(main):007:0> Time.zone.parse("2020-08-27").zone
=> "CEST"
irb(main):008:0> Time.zone.parse("2020-12-27").zone
=> "CET"
Dockerfile выглядит следующим образом:
FROM ruby:2.7.1-alpine
# Add basic packages
RUN apk add --update --no-cache \
build-base \
python2 \
postgresql-dev \
git \
nodejs \
yarn \
tzdata \
file \
# Image processing resources
gobject-introspection-dev \
poppler-dev \
# Test Resources
chromium-chromedriver \
chromium \
harfbuzz \
nss
WORKDIR /app
# Install standard gems
COPY Gemfile* /app/
RUN gem install bundler && \
bundle config --global frozen 1 && \
bundle config --local build.sassc --disable-march-tune-native && \
bundle install -j4 --retry 3
# Install standard Node modules
COPY package.json yarn.lock /app/
RUN yarn install
ONBUILD COPY . ./
Кто-нибудь знает больше о внутреннем устройстве? Это проблема с рейлингами, рубином или альпийским пакетом. Любая помощь была бы замечательной!
ОБНОВИТЬ
Я мог бы воспроизвести поведение с помощью чистого докера, например:
docker run -it ruby:2.7.1-alpine /bin/sh
0 apk add --update --no-cache build-base sqlite-dev nano nodejs yarn tzdata
1 gem install rails
2 rails new timzone_test
3 rails webpacker:install
4 nano config/application.rb # add config.time_zone = 'Europe/Berlin'
5 rails console
У меня такая же проблема с этой чистой установкой
Loading development environment (Rails 6.0.3.4)
irb(main):001:0> Time.zone.parse("2020-12-27").zone
=> "CEST"
После добавления
gem 'tzinfo-data'
в Gemfile все заработало как положено:
Loading development environment (Rails 6.0.3.4)
irb(main):001:0> Time.zone.parse("2020-12-27").zone
=> "CET"