CI не может создать проект .NET, происходит сбой с: «Не удалось найти действительный пакет ICU, установленный в системе ...» - PullRequest
1 голос
/ 27 сентября 2019

Я работаю над тем, чтобы Jenkins создавал наши устаревшие приложения .NET 2.1 в рамках оптимизации наших развертываний в kubernetes

Поэтому я создал пользовательский агент Jenkins на основе jenkins / jnlp-slave: latest-jdk11 dockerизображение (https://github.com/jenkinsci/docker-jnlp-slave), которое, в свою очередь, основано на Debian 9, дополнено официальным ядром .NET (распаковал ZIP с https://dotnet.microsoft.com/download/dotnet-core/2.1, обновления Debian не работают с нашим брандмауэром), и для тривиальных проектовэто сработало хорошо.

Теперь я пытаюсь с настоящим унаследованным приложением, которое красиво собирается при запуске команд из командной строки, но когда Jenkins пытается запустить dotnet restore -v n, сборка сразу завершается с ошибкой:

+ dotnet restore -v n
11:11:29  FailFast:
11:11:29  Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
11:11:29  
11:11:29     at System.Environment.FailFast(System.String)
11:11:29     at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
11:11:29     at System.Globalization.GlobalizationMode..cctor()
11:11:29     at System.Globalization.CultureData.CreateCultureWithInvariantData()
11:11:29     at System.Globalization.CultureData.get_Invariant()
11:11:29     at System.Globalization.CultureInfo..cctor()
11:11:29     at System.StringComparer..cctor()
11:11:29     at System.AppDomain.InitializeCompatibilityFlags()
11:11:29     at System.AppDomain.Setup(System.Object)
11:11:29  Aborted (core dumped)

Не имея большого опыта работы с .NET, я, вероятно, где-то пропустил шаг при настройке среды. Приложение должно работать в локали "da-DK".

Я понимаю, что некоторыечасть отсутствует. Как это исправить? Меня интересуют как быстрые решения для конкретных проектов, так и долгосрочные агентскиеc решения.

1 Ответ

0 голосов
/ 27 сентября 2019

Обнаружив https://docs.microsoft.com/da-dk/dotnet/core/tools/dotnet-install-script на странице загрузки и увидев ссылку «необходимые зависимости» в сочетании с выводом из скрипта установки, я обнаружил, что основной причиной является отсутствие библиотечных зависимостей, и исправление должно было быть установленоих в Dockerfile.

# Needed dependencies...
RUN apt install -y libunwind8 libicu57
...