更新docker- container jre时区



根据这里https://stackoverflow.com/a/40416306/6804200

我更新了我的本地ubuntu jre日期(os日期已经为true)。但是当我运行应用程序时,日期仍然是旧的。

我看应用服务器在Docker - war中部署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)));

带错误的日期。

我需要做

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的启动选项

  1. 你需要在容器内运行tzupdater.jar (docker exec -it container_id bash,然后执行更新程序),因为容器有它自己的jre。
  2. 您还需要使用更新的jre构建新的docker映像,该映像将包含基于最新文件的时区数据库(https://www.iana.org/time-zones)。
  3. 如果始终保持准确的时区偏移量对您来说至关重要,请考虑使用一些时区web服务。看到这里。

在java中不能用yes来表示docker,你可以在下面一些常见的类或所有创建date对象的类中这样做。

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

那么在Date dt=new Date();的情况下,它将包含按照IST时区的日期。

最新更新