Почему изменение часового пояса ubuntu16.04 в докере неверно

Я использую команду apt-get install -y tzdata && echo Asia/Shanghai > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata изменить часовой пояс на UTC+8, но он не работает. Мой Dockerfile выглядит следующим образом:

FROM ubuntu:xenial
MAINTAINER Leon.Gan
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak \
  && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main" >/etc/apt/sources.list \
  && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial main" >>/etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main" >>/etc/apt/sources.list \
  && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main" >>/etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial universe" >>/etc/apt/sources.list \
  && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe" >>/etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe" >>/etc/apt/sources.list \
  && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe" >>/etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security main" >>/etc/apt/sources.list \
  && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main" >>/etc/apt/sources.list \
  && echo "deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe" >>/etc/apt/sources.list \
  && echo "deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe" >>/etc/apt/sources.list \
  && apt-get update \
  && apt-get install -y locales \
  && locale-gen zh_CN.UTF-8 \
  && apt-get install -y tzdata \
  && echo Asia/Shanghai > /etc/timezone \
  && dpkg-reconfigure -f noninteractive tzdata \
  && rm -rf /var/lib/apt/lists/*

ENV LC_ALL "zh_CN.UTF-8"
ENV LANG "zh_CN.UTF-8"

CMD ["/bin/bash"]

После сборки образа вхожу в контейнер, запускаю команду cat /etc/timezoneStill содержание по-прежнему Etc/UTC. Значит моя команда echo Asia/Shanghai > /etc/timezone в Dockerfile не работает. Итак, плз, научите меня, как правильно изменить часовой пояс, спасибо.

2 ответа

Решение

Я предполагаю dpkg-reconfigure -f noninteractive tzdata делает что-то не так.

Я рекомендую либо установить ENV TZ=Asia/Shanghai и / или бежать

ln -s -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

Попробуй использовать

ENV TZ=Asia/Singapore

в вашем докер-файле. Он устанавливает часовой пояс глобальной окружающей среды, чтобы превзойти его.

Другие вопросы по тегам