Я занимаюсь разработкой приложения в ядре Asp.net, которое использует несколько переводов в зависимости от языка пользователя.
В моем контроллере я пытаюсь загрузить сообщение об ошибке из файла .resx. У меня есть несколько в зависимости от языка:
Translations.nl.resx
Translations.en.resx
Translations.fr.resx
Translations.resx (default)
Я настроил это в Startup.cs, добавив следующее:
services.AddLocalization();
И в конструкторе моего контроллера я добавил:
IStringLocalizer<Translations> localizer
Если я создаю свое приложение на локальном компьютере в режиме отладки или выпуска, мои переводы работают как положено.
Это также работает, если я создаю приложение с помощью docker-compose, но в режиме отладки.
Если я создаю свое приложение с помощью docker-compose в режиме выпуска, оно не может найти ожидаемый перевод.
Мой Dockerfile выглядит так:
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 60604
EXPOSE 44327
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY MemberDataApi/NuGet.linux.config .
COPY MemberDataApi/MemberDataApi.csproj MemberDataApi/
VOLUME /nuget/myrepo/
COPY MemberDataApi/NugetPackage/ /nuget/myrepo/
RUN dotnet restore MemberDataApi/MemberDataApi.csproj
COPY . .
WORKDIR /src/MemberDataApi
RUN dotnet build MemberDataApi.csproj -c Release -o /app --no-restore
FROM build AS publish
RUN dotnet publish MemberDataApi.csproj -c Release -o /app --no-restore
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MemberDataApi.dll"]
Могу ли я кому-нибудь помочь мне с этим? Любая идея о том, что отсутствует на контейнере или что не так