【问题标题】:Change TimeZone in Docker (ASP.NET Core)在 Docker (ASP.NET Core) 中更改时区
【发布时间】:2021-11-15 13:35:55
【问题描述】:

我是 docker 新手,希望将 TZ=Australia/NSW 设置为 official dotnet core docker image

我尝试在第 5 行添加到 ENV TZ=Australia/NSW,但没有成功。

请帮忙。

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
ENV TZ=Australia/NSW
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build


WORKDIR /src
COPY ["Application.WebAPI/Application.WebAPI.csproj", "Application.WebAPI/"]
RUN dotnet restore "Application.WebAPI/Application.WebAPI.csproj"
COPY . .
WORKDIR "/src/Application.WebAPI"
RUN dotnet build "Application.WebAPI.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Application.WebAPI.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Application.WebAPI.dll"]

【问题讨论】:

  • 您的哪些症状表明它不起作用?对docker run --rm -e TZ=Australia/NSW mcr.microsoft.com/dotnet/aspnet:5.0 date 的快速测试表明它应该可以工作。
  • 嗨@HansKilian 有一个错误说,"Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container...."
  • 这只是一个警告,不是吗?请参阅stackoverflow.com/questions/61452280/… 了解说明

标签: c# asp.net docker .net-core asp.net-web-api


【解决方案1】:

aspnet 映像的操作系统版本是 Debian GNU/Linux 10

我在 docker 容器中运行了两个命令

ln -sf /usr/share/zoneinfo/posix/Australia/NSW /etc/localtime
date

得到以下输出:

您可以将其添加到您的 Dockerfile 作为 Docker 构建指令的一部分

Run ln -sf /usr/share/zoneinfo/posix/Australia/NSW /etc/localtime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 2019-12-27
    • 2016-10-22
    相关资源
    最近更新 更多