前言
部署的docker容器一定要是东八时区,才不至于导致程序部署时间错误,从而引起简单而又致命的错误。

配置
宿主机配置东八时区
详见: centos7下配置中国时区

docker-compose.yml文件配置东八时区上海时间
version: "3.5"
services:
  mysql:
    image: mysql:5.7
    environment:    #设置东八时区上海时间
      - SET_CONTAINER_TIMEZONE=true
      - CONTAINER_TIMEZONE=Asia/Shanghai
    volumes:    #挂载宿主机东八时区
      - /etc/localtime:/etc/localtime:ro
应用示例
version: "3.5"
services:
  mysql:
    image: mysql:5.7
    container_name: mysql5.7
    hostname: mysql5.7
    ports:
      - 3306:3306    
    environment:
      - MYSQL_DATABASE=nature
      - MYSQL_USER=nature
      - MYSQL_PASSWORD=root@1234
      - MYSQL_ROOT_PASSWORD=nature@1234
      - SET_CONTAINER_TIMEZONE=true
      - CONTAINER_TIMEZONE=Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /home//mysql:/var/lib/mysql:Z
    command: ["--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci","--lower-case-table-names=1"]
    restart: always
    tty: true

结语
亦可在Dockerfile文件构建镜像中解决时区的问题,docker run容器时,就不需要设置这些参数。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐