日前在实时容器化过程中出现几次时区问题, 网上流传的挂载/etc/timezone
和/etc/localtime
两个文件的方法, 在实际操作中发现并不是均有作用. 故特在此记录一下.
以下使用 docker-compose
的编排配置文件 docker-cpmpose.yaml
MySQL
1 2 3 4 5 6
| version: '3.7' services: mysql: image: mysql:5.7.27 environment: - TZ=Asia/Shanghai
|
PostgreSQL
1 2 3 4 5 6
| version: '3.7' services: postgresql: image: postgres:11.5 environment: - TZ=Asia/Shanghai
|
- 验证方式
SELECT NOW();
- 注意
PostgreSQL
在第一次创建时就必须加上上面的环境变量, 初始化后会将时区信息存储到 /var/lib/postgresql/data/postgresql.conf
文件中, 之后在通过修改环境变量的方式就无法再修改时区, 需要通过改配置文件的方式修改.
Tomcat
1 2 3 4 5 6
| version: '3.7' services: serve: image: tomcat:8.5.47-jdk8-openjdk environment: - TZ=Asia/Shanghai
|
Jenkins
1 2 3 4 5 6
| version: '3.7' services: serve: image: jenkins/jenkins:2.204 environment: - JAVA_OPTS= -Duser.timezone=Asia/Shanghai
|