2016-11-04 3 views
0

ここ https://stackoverflow.com/a/40416306/6804200更新ドッキングウィンドウ-contanierのJREのタイムゾーン

によると、私は私の地元のUbuntuのJREの日付を更新(OSの日付が既に本当でした)。しかし、私はアプリケーションを実行すると、日付は古いものです。

私はここ Application server in Docker - war deployment with IntelliJ

https://runnable.com/docker/java/dockerize-your-java-application

に見えたが、彼らは私が望んでいたようにしてくださいいけません。

私はこの

params.put("createdDate", persisted.getCreatedAt(). 
now(ZoneId.of(Constants.TURKEY_ZONE)). 
format(DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT))); 

が間違った日付をもたらすためのアプリ

を実行し、コンテナのJREを変更したいです。それは1時間前です。

私は私が私の地元でやるよう

java -jar tzupdater.jar -l file:///home/vegan/Downloads/tzdata2016g.tar.gz 

を行う必要があります。

OSはubuntuです。 Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-34-generic x86_64) そこには、これらの画像は、プロジェクトがアプリであるとき10 12 microservicesの周りにある

jhipster/jhipster-alerter 
jhipster/jhipster-console 
jhipster/jhipster-registry 
mongo rabibtmq, 
vimagick/pure-ftpd 
and our company image about 1.8 gb. 

です。ドッカーの開始オプションを変更しないでコード内の何かを変更したい

+1

更新後、更新コンテナを新しいイメージとして 'docker commit'しましたか?ドックを参照してくださいhttps://docs.docker.com/engine/reference/commandline/commit/ – user2915097

+0

私はドッカーの内部ではなかった、私は私のローカルOSのためにやった。ドッカーではありません。 docker exec -i -t ab6558034b40/bin/bash私は中に入ったが、もし私が内部で行うと、それはマシンのためになるだろう、永久にイメージではない。私は画像が永久磁石に変更されると思いますか? – mark

+1

これが役立つかもしれません - http://stackoverflow.com/questions/22800624/will-docker-container-auto-sync-time-with-the-host-machine – Rao

答えて

1

javaでドッカーについてyesと言うことはできません。いくつかの一般的なクラスまたは日付オブジェクトを作成するすべてのクラスで行います。

TimeZone.setDefault(TimeZone.getTimeZone("IST")); // IST is for timezone you want to set 

Date dt=new Date();の場合、ISTタイムゾーンごとの日付が含まれます。

1
  1. コンテナは、それ自身のJREを持っているので、あなたは、(ドッキングウィンドウの幹部は、アップデータを実行しcontainer_idはbashを-itと)コンテナ内tzupdater.jar実行する必要があります。
  2. 最新のファイルベースのタイムゾーンデータベース(https://www.iana.org/time-zones)を含む更新されたjreで新しいドッカー画像を構築する必要があります。
  3. 正確なタイムゾーンオフセットが必要な場合は、タイムゾーンWebサービスの使用を検討してください。 hereを参照してください。
+0

これは複数のコンテナです。彼らのうちの何人かは私のためにするべきですか?たぶん私は最初にJavaを実行する必要がありますか?そしてアプリケーションがアップしている間、私はコンテナの中に行くことができます。コンテナがwrkingしている間、どのようにキルすべてのJavaをtzを更新することができますか?私のローカルでは私がこのようにしてすべてのJavaを殺すので – mark

+1

javaがあなたのローカルマシンで更新されたならそれはおそらくタイムゾーンdb updateを含んでいたでしょう。私は、タイムゾーン機能を使用するアプリケーション/コンテナを識別し、そのコンテナ内でtzupdaterを実行するか、コンテナ内のjavaをアップグレードする必要があると思います。もう1つの方法は、更新されたJavaで新しいコンテナを作成することです。 –

+0

どのようにその容器ですか? – mark

関連する問題