Javascript Date дает неверный часовой пояс в тесте кармы

Каким-то образом после перестроения образа Docker у меня начались проблемы с часовым поясом javascript. Раньше он работал, но после обновления образа Docker каким-то образом результирующий объект Date больше не подчиняется настройке TZ. В результате наши тесты форматирования строки даты, зависящие от часового пояса, не проходят.

# in the tests
console.log(new Date("2016-04-01T00:00:00.000000+00:00"));
// It is very strange it says (Asia) at the end.
// In fact, it will say whatever I put in TZ
Fri Apr 01 2016 00:00:00 GMT+0000 (Asia)

# in Chrome developer tool
console.log(new Date());
Fri Apr 01 2016 08:00:00 GMT+0800 (CST)

gulpfile.js

gulp.task('test', ['_set_tpe_timezone'], runKarmaWebpackTests);
gulp.task('_set_tpe_timezone', function() {
  gutil.log('Setting timezone TZ = Asia/Taipei');
  process.env.TZ = 'Asia/Taipei';
  return;
});

Я использую следующую настройку для запуска тестов JavaScript:

  • Глоток + карма
  • внутри контейнера Docker
  • В gulpfile выполните следующие настройки перед каждым тестомprocess.env.TZ = 'Asia/Taipei';
  • используя безголовый Chrome 59
  • cat /etc/timezone знак равно Etc/UTC

1 ответ

Хотя первопричина еще не обнаружена, решение найдено. Так как эта проблема не появилась раньше, а только после docker system prune -a, базовое изображение было обновлено до последней версии, в которой представлена ​​эта ошибка.

В качестве временного решения я вернулся к старому базовому образу, и он работает, как и раньше, без других модификаций. Я также собираюсь сообщить об этом команде фьюжн.

оригинальный Dockerfile

FROM phusion/baseimage
...

новый Dockerfile

FROM phusion/baseimage:0.9.21
...
Другие вопросы по тегам