接手一個項目,發現數據生成日期和當前日期不一致,考慮幾個可能
1.代碼存在問題
2.服務器時間不正確
3.docker容器時間不正確
首先過一遍代碼,獲取當前系統時間無誤,排除第一個原因;
進入服務器,執行命令
date
確認時間與當前一致,排除第二個原因;
查看當前容器時間
docker exec -it 當前容器id /bin/sh
/usr/local/myapp # date
對比確認時間不一致,確定是docker時間問題,尋找解決方法,參考這位同學的方法:https://www.cnblogs.com/effortsing/p/10060547.html
編輯好dockerfile后執行報錯:'/usr/share/zoneinfo/Asia/Shanghai' 路徑找不到,無法進行cp操作
排查原因無果,考慮其它方法
在docker啟動腳本上加上以下代碼
#通過匹配docker鏡像名獲取鏡像id docker_find=$(docker ps -q --filter name=^/鏡像名) #將服務器的時區寫入docker的本地時區文件里 docker cp /usr/share/zoneinfo/Asia/Shanghai $docker_find:/etc/localtime
重新啟動后查詢容器時間
獲取成功!!