Dockerコンテナーは時間情報をどこで取得しますか?基本的なubuntu:trustyイメージからいくつかのコンテナーを作成し、それを実行して「日付」を要求すると、UTC時間を取得します。
しばらくの間、Dockerfileで次の操作を行うことでこれを回避しました。
RUN sudo echo "America/Los_Angeles" > /etc/timezone
ただし、何らかの理由で機能しなくなりました。オンラインで検索すると、以下が提案されました:
docker run -v /etc/timezone:/etc/timezone [image-name]
ただし、これらのメソッドは両方ともタイムゾーンを正しく設定します!
$ cat /etc/timezone
America/Los_Angeles
$ date
Tue Apr 14 23:46:51 UTC 2015
誰が何を与えるのか知っていますか?
-v /etc/localtime:/etc/localtime:ro
た作品の(CentOSの)ソート。内部コンテナのコマンドライン日付は、予想されるタイムゾーン形式で日付を返します。しかし、コンテナで実行されているジェンキンスはタイムゾーンがUTCであると考えています。どうして?/ etc / localtimeは、ビルドされたコンテナ内の../usr/share/zoneinfo/UTCへのシンボリックリンクです。コンテナ内のUTCファイルのコンテンツが新しいタイムゾーンになりました。しかし、ジェンキンス(およびおそらく他のJavaベースのソフトウェア)は、まだ「UTC」であるシンボリックリンクの名前を使用します。ソリューションを検索しています。。。
Alpine
、tzdata
最初にインストールする必要があります。こちらをご覧くださいgithub.com/gliderlabs/docker-alpine/issues/136