更新docker-contanier jre时区
根据这里https://stackoverflow.com/a/40416306/6804200
我更新了我的本地ubuntu jredate(osdate已经是真的)。 但是当我运行应用程序,date仍然是旧的。
我看着Docker中的应用程序服务器 – 与IntelliJ战争部署
https://runnable.com/docker/java/dockerize-your-java-application
在这里,但他们不做我想要的。
我想改变运行应用程序的容器jre
因为这
params.put("createdDate", persisted.getCreatedAt(). now(ZoneId.of(Constants.TURKEY_ZONE)). format(DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT)));
带来错误的date。 这是一个小时前。
我需要去做
java -jar tzupdater.jar -l file:///home/vegan/Downloads/tzdata2016g.tar.gz
就像我在当地一样。
操作系统是Ubuntu的。 Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-34-generic x86_64)
有这些图像
jhipster/jhipster-alerter jhipster/jhipster-console jhipster/jhipster-registry mongo rabibtmq, vimagick/pure-ftpd and our company image about 1.8 gb.
当项目是应用程序时,大约有10 12 microservices
。 我想改变代码内的东西,而不是开始改变docker的开始选项
在java中你不能说关于docker的问题,你可以在一些普通的类或者所有你创builddate对象的类中做下面的事情。
TimeZone.setDefault(TimeZone.getTimeZone("IST")); // IST is for timezone you want to set
那么在Date dt=new Date();
情况下Date dt=new Date();
它将包含按照IST时区的date。
- 你需要在容器中运行tzupdater.jar(docker exec -it container_id bash,然后执行updater),因为容器有它自己的jre。
- 您还需要使用更新的jre构build新的Docker镜像,该镜像将包含最新的基于文件的时区数据库( https://www.iana.org/time-zones )。
- 如果您始终有准确的时区偏移是至关重要的,请考虑使用一些时区Web服务。 看到这里 。