我正在 Azure 的容器实例中运行 Jenkins。然而,当我詹金斯开始构建时,我收到以下错误。我已经阅读了很多信息,人们建议将其添加到项目文件中:
<InvariantGlobalization>true</InvariantGlobalization>
我已经这样做了,但仍然不起作用。我尝试按照建议和我在其他文章中读到的那样安装 libicu,但当我登录到容器并输入
时,我仍然无法做到这一点apt-get install libicu-dev
我明白了:
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
我尝试过使用 sudo,但 sudo 无法识别....
这是来自 Jenkins 的完整错误消息:
Process terminated. Couldn't find a valid ICU package installed on the system. Please install libicu (or icu-libs) using your package manager and try again. Alternatively you can set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support. Please see https://aka.ms/dotnet-missing-libicu for more information.
at System.Environment.FailFast(System.String)
at System.Globalization.GlobalizationMode+Settings..cctor()
at System.Globalization.CultureData.CreateCultureWithInvariantData()
at System.Globalization.CultureData.get_Invariant()
at System.Globalization.TextInfo..cctor()
at System.String.ToLowerInvariant()
at System.Text.EncodingHelper.GetEncodingFromCharset()
at System.ConsolePal.GetConsoleEncoding()
at System.Console.get_OutputEncoding()
at Microsoft.DotNet.Cli.AutomaticEncodingRestorer..ctor()
at Microsoft.DotNet.Cli.Program.Main(System.String[])
.NET Command Completed - Exit Code: 134
ERROR: Command execution completed with return code 134.
Finished: FAILURE
正如您正确强调的那样,将新的虚拟机设置为 Jenkins 代理,并为其授予必要的权限和对所需资源的访问权限。
sudo adduser jenkins-agent
转到 管理 Jenkins > 管理节点和云,然后单击 新节点 创建新代理。
vm-agent
)并配置代理设置,包括虚拟机上的远程根目录和标签(如果您想将某些作业限制到此代理)。选择通过 SSH 启动代理并提供虚拟机的 SSH 详细信息。 Jenkins 将尝试通过 SSH 连接并下载代理 JAR 文件 (
agent.jar
)。
连接后,虚拟机应在 Jenkins 仪表板中显示为在线。
在 jenkins 作业配置中,添加 .NET 构建步骤以验证 VM 代理是否可以成功构建而不会出现错误。
请随时更新您的额外积分。