Docker容器中时间设置

        项目中使用SpringBoot框架,docker部署;默认容器使用UTC时间,跟本地时间相差8个小时,在查看日志的时候时间偏差很不爽,于是参考了网上资料之后做了一些修改,记录下

       1.修改Dockerfile文件,加入命令

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

设置了环境变量,之后通过ln -snf 命令创建一个软链接,使得/etc/localtime指向/usr/share/zoneinfo/Asia/Shanghai这个文件;

完整的Dockerfile如下所示

FROM openjdk:8-jre-alpine

ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
    JHIPSTER_SLEEP=0 \
    JAVA_OPTS=""
ENV TZ=Asia/Shanghai
# Add a jhipster user to run our application so that it doesn't need to run as root
RUN adduser -D -s /bin/sh jhipster
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /home/jhipster

ADD entrypoint.sh entrypoint.sh
RUN chmod 755 entrypoint.sh && chown jhipster:jhipster entrypoint.sh
USER jhipster

ADD *.war app.war

ENTRYPOINT ["./entrypoint.sh"]

EXPOSE 8080

2.如果是使用docker-compose,可以直接设置下环境变量即可

 environment:
      - TZ=Asia/Shanghai

注意,有的容器中没有时区的文件,需要把宿主机的挂载过去,可以在app.yml文件中添加这样一个挂载的命令

volumes:
  - /usr/share/zoneinfo/Asia/:/usr/share/zoneinfo/Asia/

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值