91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在golang鏡像中設置指定時區

發布時間:2023-04-26 16:31:43 來源:億速云 閱讀:136 作者:iii 欄目:開發技術

今天小編給大家分享一下怎么在golang鏡像中設置指定時區的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

我們在構建鏡像的時候,經常會使用alphine作為基礎鏡像,或者就直接從scratch構建了;這樣構建之后的鏡像非常的小,傳輸也更加的快

但是這種鏡像也會有一個問題,就是只能使用UTC時區,不能加載別的時區,因為鏡像中沒有包含時區文件;雖然UTC時區也很好用,但是有時候在處理一些定時任務,或者是打印日志時,還是希望能夠使用Local Time

為了解決這個問題,我們需要更改鏡像文件,將時區文件包含進去,然后使用ENV設置本地時區;

添加時區文件

在Go語言中,時區信息通常從操作系統環境變量中讀取。具體來說,它使用了名為TZ的環境變量。如果未設置該變量,則使用操作系統的默認時區

首先,我們需要知道的是確定golang會從哪些路徑中讀取時區文件,默認情況下,golang會從如下的路徑中讀取時區文件:

/usr/share/zoneinfo/
/usr/share/lib/zoneinfo/
/usr/lib/locale/TZ/

當然,也可以通過ENV ZONEINFO指定一個時區文件;那我們如何將時區文件放入到這些目錄下面呢

大部分時候,我們都可以從基礎鏡像中找到時區文件,然后將其添加到最終鏡像中就可以了;但是,有時候我們會使用golang:alphine鏡像,這種鏡像本身并不包含時區文件,所以我們需要使用命令進行添加時區文件了,如下:

FROM golang:alpine as build
RUN apk --no-cache add tzdata
WORKDIR /app
ADD . .
RUN CGO_ENABLED=0 GOOS=linux go build -o myapp

FROM scratch as final
COPY --from=build /app/myapp .
COPY --from=build /usr/share/zoneinfo /usr/share/zoneinfo
ENV TZ=Asian/Shanghai
CMD ["/myapp"]

我們通過命令RUN apk --no-cache add tzdata添加時區文件,然后將其添加到最終鏡像中,最后通過ENV TZ指定當前時區,這樣問題就解決了

但是,有時候公司的防火墻可能會屏蔽掉這些源,這樣執行RUN apk --no-cache add tzadd時就會拉取不下來,那此時就需要其他的辦法找到時區文件了

幸運的是在golang的庫中是包含時區文件的,位置在的$GOROOT/lib/time/zoneinfo.zip,那么就可以直接將這個時區文件復制到image當中了,如下:

FROM golang:alpine as build
WORKDIR /app
ADD . .
RUN CGO_ENABLED=0 GOOS=linux go build -o myapp

FROM scratch as final
COPY --from=build /app/myapp .
COPY --from=build /usr/local/go/lib/time/zoneinfo.zip /
ENV TZ=Asian/Shanghai
ENV ZONEINFO=/zoneinfo.zip
CMD ["/myapp"]

在該dockerfile中,我們使用ENV ZONEINFO告訴golang從哪取獲取時區文件,然后使用ENV TZ指定當前的時區,這樣就能夠保證鏡像能夠讀取到正確的時區文件了

以上就是“怎么在golang鏡像中設置指定時區”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛南县| 阜新市| 衡阳市| 于田县| 乌恰县| 绵竹市| 太仆寺旗| 新和县| 木兰县| 巴马| 合川市| 颍上县| 新田县| 晋中市| 全南县| 宕昌县| 桦川县| 旬邑县| 太原市| 清水河县| 肇庆市| 常宁市| 平远县| 陕西省| 措勤县| 玉溪市| 施秉县| 小金县| 宜良县| 靖西县| 民县| 新沂市| 玉龙| 龙里县| 辽阳市| 广南县| 四平市| 洪江市| 台北市| 江都市| 揭东县|