docker容器時區設置


這兩天遇到一個問題,開始時使用docker都沒注意,使用.net的docker時候默認時區是格林威治時間,這其實導致了不少問題,代碼使用格林威治時間,我的數據庫因為沒有使用docker時間又是東八區,然后各種判斷出錯。哈哈。

其實這類文章很多,網上隨便百度了一下就有,我就是參照這個地址:https://blog.csdn.net/liuwei0376/article/details/95061844

但是這里其實這里我遇到了不少問題。我在yml文件里面添加了environment參數,但是依然沒效果,后面我發現,媽的,我在TZ的參數后面加了引號導致失效。去掉就好了。,這里解決了,其他的方法我就沒試了,按邏輯來說,在dockerfile里面修改時區應該跟使用Linux命令修改時區一樣,只要依次執行命令應該就行了。

貼一下自己修改后的yml文件,修改時區的主要代碼就是environment參數

  lot-webapi: 
    build: ./docker-app/webapi/
    restart: always
    container_name: lot-webapi
    environment: 
      - TZ=Asia/Shanghai
    volumes: 
      - "./docker-app/webapi/app:/root/app"
      - "./docker-app/webapi/app/upload:/root/app/upload"
      - "./docker-app/webapi/app/logs:/root/app/logs"
      - "./docker-app/webapi/fonts:/usr/share/fonts"
    ports: 
      - "9001:8000"
    depends_on:
      - lot-rabbitmq
    links: 
#      - lot-db
        - lot-redis
        - lot-rabbitmq
    entrypoint: 
      - dotnet
      - /root/app/LotteryTicket.Web.dll

 同事在dockerfile里面修改時區的代碼:

 不同的基礎鏡像使用的命令其實也不一樣

我的Nginx容器使用的alpine,所以修改命令:(參考文章:https://www.jianshu.com/p/cd1636c94f9f

#時區問題
#RUN apk add -U tzdata && rm -rf /etc/localtime && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone 

  其實就是多了一把安裝時區的數據包

我的api容器修改時區:

#時區問題
#RUN rm -rf /etc/localtime && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM