docker容器時(shí)區(qū)錯(cuò)誤問題
背景
利用node-schedule定時(shí)任務(wù)庫寫了一個(gè)自動(dòng)定時(shí)發(fā)郵件的腳本,每天上午7點(diǎn)發(fā)送郵件,郵件中會(huì)獲取當(dāng)天日期
問題
收到郵件的時(shí)間為下午三點(diǎn),而不是上午7點(diǎn),推測(cè)是時(shí)區(qū)設(shè)置問題
問題分析及解決辦法
經(jīng)過排查發(fā)現(xiàn),node-schedule庫不支持選擇時(shí)區(qū),所以默認(rèn)按照全球標(biāo)準(zhǔn)時(shí)UTC發(fā)送,我們通常傳入的時(shí)間是中國(guó)上海時(shí)區(qū)時(shí)間CST,中間會(huì)相差八小時(shí)。
更換了定時(shí)任務(wù)庫,采用node-schedule-tz定時(shí)任務(wù)庫,支持選擇CST時(shí)區(qū),并采用corntab時(shí)間格式
let j = schedule.scheduleJob('name',"0 7 * * *",'Asia/Shanghai', function () { console.log("執(zhí)行任務(wù)"); getAllDataAndSendMail(); });
新的問題
更改完時(shí)間后,出現(xiàn)了一個(gè)新的問題,郵件中獲取的時(shí)間是昨天的時(shí)間,而不是今天的時(shí)間
問題分析及解決辦法
想了一下,代碼中總共有兩個(gè)地方獲取了時(shí)間,一個(gè)是定時(shí)任務(wù)庫傳入的發(fā)郵件的時(shí)間,一個(gè)是腳本里獲取當(dāng)前時(shí)間
let today = new Date()
因?yàn)槲矣写蛴oday的log,查看下日志
docker logs -f [containerID] # today:2021-11-12T23:00:00.106Z
發(fā)現(xiàn)早上7點(diǎn)發(fā)送的郵件,today拿到的時(shí)間是前一天的23點(diǎn),也是相差8小時(shí)
利用下面的命令,進(jìn)入docker容器中查看時(shí)間
$ docker exec -it [containerID] sh # 進(jìn)入容器之后前面會(huì)變成# # 輸入date查看時(shí)間 date # Sat Nov 13 05:05:31 UTC 2021
果然是UTC全球標(biāo)準(zhǔn)時(shí),說明發(fā)送郵件時(shí)間確實(shí)改回來了,但是代碼執(zhí)行時(shí)獲取的時(shí)間是此刻的全球標(biāo)準(zhǔn)時(shí)。
我們把本機(jī)的時(shí)間復(fù)制給容器的時(shí)間
docker cp /etc/localtime [containerID]:/etc/
再次按照上述查看容器內(nèi)時(shí)間,發(fā)現(xiàn)已經(jīng)改回來CST了,應(yīng)該沒有什么問題了
到此這篇關(guān)于docker容器時(shí)區(qū)錯(cuò)誤問題的文章就介紹到這了,更多相關(guān)docker 時(shí)區(qū)錯(cuò)誤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Centos7中安裝Docker1.12的詳細(xì)教程
本篇文章主要介紹了在Centos7中安裝Docker1.12的詳細(xì)教程。具有一定的參考價(jià)值,有興趣的可以了解一下。2017-02-02詳解使用 Docker 構(gòu)建 LNMP 環(huán)境
本篇文章主要介紹了使用 Docker 構(gòu)建 LNMP 環(huán)境,詳細(xì)的介紹了配置LNMP 環(huán)境的步驟。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03Docker下安裝ElasticSearch和Kibana的示例代碼
這篇文章主要介紹了Docker下安裝ElasticSearch和Kibana的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08centos7搭建docker私人倉庫的方法(kubernetes)
這篇文章主要介紹了centos7搭建docker私人倉庫的方法(kubernetes),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03Docker拉取鏡像失敗解決(connect: connection refused)
最近遇到Docker拉取centos鏡像時(shí)報(bào)錯(cuò),本文主要介紹了Docker拉取鏡像失敗解決(connect: connection refused),具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07