docker - Kubernetes 不采用 dockerfile 时区
问题描述
我有下一个 docker 文件,我在其中定义了 America/Bogota 的 timeZone,然后 Azure 管道构建的图像我可以在日志中看到的日期在 dockerfile 中是正确的,但是当我在 azure Kubernetes 中执行 pod 时,时区是不同的。为什么 kubernetes pod 不采用美国/波哥大时区?
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY NuGet.Config ./
COPY NugetPackage/travelExpensesRestClient.1.0.0.nupkg NugetPackage/
RUN dir /src/NugetPackage
COPY microservicioX/microservicioX.csproj microservicioX/
COPY travelExpenses.Viajes.Proxy/travelExpenses.Viajes.Proxy.csproj travelExpenses.Viajes.Proxy/
RUN dotnet restore -nowarn:msb3202,nu1503 microservicioX/microservicioX.csproj #--verbosity diag
COPY . .
WORKDIR /src/microservicioX
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish microservicioX.csproj -c Release -o /app
WORKDIR /
ENV TZ=America/Bogota
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN date
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "microservicioX.dll"]
有关更多详细信息:在天蓝色管道中,我可以看到正确的时区 https://i.ibb.co/wgSzHS9/Time-Zone-build-Image.png
azure kubernetes pod 中的时区 https://i.ibb.co/hm25Xkc/Time-Zone-in-Pod.png
解决方案
我认为您可能正在以不同的图像定义 TZ
这是publish
图像:
FROM build AS publish
RUN dotnet publish microservicioX.csproj -c Release -o /app
WORKDIR /
ENV TZ=America/Bogota
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN date
这就是你设置 TZ 的地方。这是final
应用程序运行的图像:
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "microservicioX.dll"]
您没有在此处设置 TZ。我认为,就像您在publish
图像中所做的那样在此处添加 TZ 就足够了。
推荐阅读
- android - 反应本机应用程序中的静默推送通知
- javascript - JavaScript:命名空间与作用域
- cassandra - Cassandra 查询超时,当明确指定为 LOCAL_QUORUM 时将一致性视为 ALL
- java - 如何将“+999999999-12-31T23:59:59.999999999”,以字符串形式存储的 OffsetDateTime 的最大值转换为 LocalDate
- django - Django 比较两个查询集并根据这些值创建一个列表,并为每个项目添加附加数据
- ios - 如何对sceneView中节点的子节点进行hitTest?
- postgresql - 导入到 postgres 时从 CSV 中删除封闭的双括号
- javascript - 将模块变量切换为实例变量
- ruby - 用 Ruby 计算日期
- python - 字体显示期间的Pygame问题