美文网首页
关于我和 docker 和 k8s 和 golang 的故事

关于我和 docker 和 k8s 和 golang 的故事

作者: 千罹 | 来源:发表于2021-09-05 17:25 被阅读0次

    1. 编译镜像:尽量减小大小的故事

    1. 最小的镜像是 alpine,比 ubuntu,centos,redhat 小很多,很多,很多(仅 4M 多)。我正打算用这个的时候,
    2. 发现了空镜像 scratch,4M 也省了

    现在我用
    golang:1.16.4-alpine 用来编译程序,对编译好的 bin 文件,打包进 scratch 镜像中
    scratch 镜像作为最终包

    2. 使用镜像:时区问题

    跑起来程序后,发现有关时间计算的方法全部都差 8 小时
    最后定位到:镜像的时间时区为 UTC,因为缺系统时区配置文件,fxxxxxxxxxxxxxxxxxxxxxxxxxk
    你别忘了咱们为了减小尺寸,是空镜像

    那么:

    如果你用 alpine:
    Dockerfile 中加上设置时区的代码(增加识别时区的文件)

    # 设置时区为上海
    RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
        && echo "Asia/Shanghai" > /etc/timezone \
        && apk del tzdata
    

    如果你用 scratch:
    Dockerfile 中加上设置时区的代码(增加识别时区的文件)(从构建的 golang1.16.4-alpine 镜像中复制过来)

    # 复制时区文件,没有这个会导致镜像中的时区不正确的问题(始终是 UTC)
    COPY --from=build /usr/share/zoneinfo /usr/share/zoneinfo
    

    --from=build 这个 build 是这里👇的名字,对上就行了,随便改
    FROM golang:1.16.4-alpine as build

    相关文章

      网友评论

          本文标题:关于我和 docker 和 k8s 和 golang 的故事

          本文链接:https://www.haomeiwen.com/subject/lggjwltx.html