iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >详解如何在golang镜像中设置指定时区
  • 403
分享到

详解如何在golang镜像中设置指定时区

摘要

我们在构建镜像的时候,经常会使用alphine作为基础镜像,或者就直接从scratch构建了;这样构建之后的镜像非常的小,传输也更加的快 但是这种镜像也会有一个问题,就是只能使用UT

我们在构建镜像的时候,经常会使用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镜像中设置指定时区的文章就介绍到这了,更多相关golang镜像设置指定时区内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: 详解如何在golang镜像中设置指定时区

本文链接: https://www.lsjlt.com/news/211566.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解如何在golang镜像中设置指定时区
    我们在构建镜像的时候,经常会使用alphine作为基础镜像,或者就直接从scratch构建了;这样构建之后的镜像非常的小,传输也更加的快 但是这种镜像也会有一个问题,就是只能使用UT...
    99+
    2023-05-18
    golang镜像设置指定时区 golang设置指定时区 golang镜像 时区
  • 聊聊如何在Golang中设置时区
    Go语言(Golang)在处理时间时,需要设置正确的时区。没设置时区,会导致时间的偏差,从而导致错误的计算。在本文中,我们将介绍如何在Golang中设置时区。Golang中的时间类型在Golang中,有三种时间类型:time.Time、ti...
    99+
    2023-05-14
  • golang如何设置时区
    本文小编为大家详细介绍“golang如何设置时区”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang如何设置时区”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。golang设置时区的方法:1、固定时区到东八...
    99+
    2023-07-05
  • Golang如何设置时区?
    Golang如何设置时区?具体如何操作?让我们一起来详细探讨一下。 在Go语言中,要设置时区通常需要使用time包中的LoadLocation函数。LoadLocation函数是根据I...
    99+
    2024-02-28
    golang 设置 时区 go语言 地理位置
  • 详细指南:PHP如何设置中国时区
    在PHP中设置中国时区是非常重要的,特别是在处理时间相关的操作时。下面将给出详细的指南,包括具体的代码示例。 在PHP中设置时区的方法是使用date_default_timezone_...
    99+
    2024-04-02
  • 使用指南:如何设置pip镜像源
    pip镜像源的使用指南 随着Python语言的普及和应用领域的扩大,pip成为了Python开发者常用的包管理工具。然而,由于国内网络环境的特殊性,直接使用官方的pip源往往速度较慢,甚至无法正常下载和安装包。为了解决这个问题,...
    99+
    2024-01-16
    pip安装 配置pip镜像源
  • golang如何设置系统时区
    golang设置系统时区的方法,在windows系统下:1、点击任务栏上的“时间和日期”;2、在显示的面板中,点击“更改日期和时间设置”;3、在“日期和时间”选项下,点击“更改时区”;4、再选择所需的时区,并点击“确定”。在linux系统下...
    99+
    2023-07-12
  • 【Python】怎么在pip下载的时候设置镜像?(常见的清华镜像、阿里云镜像以及中科大镜像)
    一、清华镜像 在使用 pip 命令下载 Python 包时,可以通过设置 pip 的镜像源为清华镜像来加快下载速度。 以下是如何设置清华镜像源的步骤: 打开终端或命令行窗口执行以下命令添加清华镜像源:...
    99+
    2023-08-31
    python pip 清华镜像 阿里云镜像 中科大镜像
  • 如何在php中设置世界时区
    这期内容当中小编将会给大家带来有关如何在php中设置世界时区,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在 PHP 中是通过日期和时间函数来获取日期和时间的。日期和时间函数依赖于服务器的时间设置,服务器...
    99+
    2023-06-15
  • 在Oozie中如何设置定时任务
    在Oozie中设置定时任务可以通过workflow.xml文件中的节点和节点来实现。具体步骤如下: 在workflow.xml文件...
    99+
    2024-04-02
  • Golang中如何设置时间
    Golang是一种流行的编程语言,它提供了一种灵活的时间管理机制。在许多应用程序中,时间处理是必不可少的部分。本文将介绍Golang中如何设置时间,并提供一些实用技巧。概述处理时间的方式在各种编程语言中都不同。在Golang中,时间是一个包...
    99+
    2023-05-14
  • 如何在CentOS中设置定时任务
    要在CentOS中设置定时任务,可以使用crontab命令来编辑和管理定时任务。以下是设置定时任务的步骤: 打开终端并登录到Ce...
    99+
    2024-04-02
  • 如何在LinuxMint中设置定时任务
    要在Linux Mint中设置定时任务,可以使用crontab命令。下面是设置定时任务的步骤: 打开终端窗口。 输入以下命令以编辑...
    99+
    2024-04-02
  • php如何在配置文件中设置时区
    本篇内容主要讲解“php如何在配置文件中设置时区”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何在配置文件中设置时区”吧!php配置文件设置时区的方法:首先找到并打开配置文件“php.i...
    99+
    2023-06-20
  • 如何在Golang中设置header
    Golang 是一种高效的编程语言,它已经成为很多人使用的首选。在 Golang 中,设置 header 是一项非常基本的操作,这个功能也是大家经常需要使用的。那么,如何在 Golang 中设置 header 呢?在 Golang 中,要设...
    99+
    2023-05-14
  • 详述如何在Golang中设置多核处理
    在高并发的应用中,使用多核处理器是一个十分关键的优化点。Go语言(Golang)自带了非常优秀的并发编程机制,可以很方便地实现多核并行处理。下面将详述如何在Golang中设置多核处理。一、了解Golang的并发编程机制Golang的并发编程...
    99+
    2023-05-14
  • windows11如何设置中国时区
    这篇“windows11如何设置中国时区”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“windows11如何设置中国时区”文...
    99+
    2023-07-01
  • php中ci如何设置时区
    这篇文章将为大家详细讲解有关php中ci如何设置时区,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php ci设置时区的方法:首先找到并打开“conifg/config.php”文件;然后在文件中添加代码...
    99+
    2023-06-15
  • Linux中如何设置时区和时间
    这篇文章主要介绍了Linux中如何设置时区和时间,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。以印度时区为例:时区的设置修改时区rm /etc/localtime`...
    99+
    2023-06-27
  • jvm中指定时区信息user.timezone问题如何解决
    本篇内容介绍了“jvm中指定时区信息user.timezone问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题同一份程序使用时...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作