Как я могу установить часовой пояс в моих контейнерах ddev?
Я часто использую ddev ssh
(для контейнера web/nginx) или ddev ssh -s db
(для контейнера db/mariadb), и при просмотре журналов и тому подобного я хотел бы видеть метки даты / времени в своем собственном часовом поясе, поэтому мне не нужно так много думать о том, сколько часов от GMT. Я не могу использовать dpkg-reconfigure tzdata
в контейнере, потому что пользователь контейнера не имеет привилегий root.
1 ответ
Это легко сделать с помощью дополнительного файла docker-compose (для TZ) и переопределения php (для PHP). Например, в моем проекте у меня есть.ddev/docker-compose.timezone.yaml, который устанавливает переменную TZ в этих контейнерах для моего часового пояса, и.ddev / php / tz.ini, который устанавливает часовой пояс по умолчанию для php (php hasn больше не уважайте переменную окружения TZ, см. php doc.
.ddev / докер-compose.timezone.yaml:
version: '3.6'
services:
web:
environment:
- TZ=Europe/Berlin
db:
environment:
- TZ=Europe/Berlin
и.ddev/php/tz.ini:
date.timezone = Europe/Berlin
Начиная с ddev v1.8.0, вы также можете установить часовой пояс в веб-контейнере, настроив.ddev/webimage-build/Dockerfile. Фактически,.ddev/webimage-build/Dockerfile.example делает именно это:
ARG BASE_IMAGE=drud/ddev-webserver:v1.8.0
FROM $BASE_IMAGE
RUN ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata
Как и выше, вам также нужно переопределить PHP в .ddev/php/tz.ini
,
date.timezone = Europe/Berlin