.Net核心忽略环境variablesDOTNET_SKIP_FIRST_TIME_EXPERIENCE

看起来你可以通过设置环境variablesDOTNET_SKIP_FIRST_TIME_EXPERIENCE=true 来节省一些.NET Core的编译时间 。 我发现在CentOS 7和Debian Jessie Linux发行版上情况并非如此。

我有jenkins用来build立.NET核心服务的jenkins奴隶jenkins.slave.dotnet.image图像,我的图像标签是jenkins.slave.dotnet.image

Jenkins Docker Plugin使用jenkins.slave.dotnet.image在构build触发时启动从容器。 Jenkins Docker插件可以访问jenkins.slave.dotnet.image所在的Docker主机。

在我的jenkins.slave.dotnet.image我设置了如下的环境variables:

 ENV NUGET_XMLDOC_MODE skip ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE true 

所有的工作都很好,除了那些环境variables被dotnet命令忽略之外,看到一个.NET Core服务的Jenkins构build的输出,如果环境variablesDOTNET_SKIP_FIRST_TIME_EXPERIENCE=truedotnet检查,你不应该在图像中看到圈出的文本CMDS:

在这里输入图像描述

将( docker exec -it jenkins.slave.dotnet.container bash )连接到使用jenkins.slave.dotnet.image的容器,可以看到DOTNET_SKIP_FIRST_TIME_EXPERIENCE已正确设置为“true”:

在这里输入图像描述

dotnet的输出–info:

在这里输入图像描述

这是我的Jenkins Slave Docker镜像( jenkins.slave.dotnet.image )的jenkins.slave.dotnet.image ,我的Jenkins主要运行容器来执行.NET Core Builds( 这是dotnet publish -c Debug -vm执行的环境 ):

 FROM tsl.devops.jenkins.slave.basic.docker.image MAINTAINER Brian Ogden ############################################# # .NET Core SDK ############################################# RUN yum install -y \ libunwind \ libicu RUN curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=848821 RUN mkdir -p /opt/dotnet && tar zxf dotnet.tar.gz -C /opt/dotnet RUN ln -s /opt/dotnet/dotnet /usr/local/bin #add Trade Service Nuget Server RUN mkdir -p /home/jenkins/.nuget/NuGet COPY /files/NuGet.Config /home/jenkins/.nuget/NuGet/NuGet.Config RUN chown -R jenkins /home/jenkins/.nuget RUN chgrp -R jenkins /home/jenkins/.nuget RUN chmod 600 /home/jenkins/.nuget/NuGet/NuGet.Config RUN chmod 700 /home/jenkins/.nuget/NuGet #speed up dotnet core builds ENV NUGET_XMLDOC_MODE skip ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE true ############################################# 

下面是一个.NET Core Micro Service构build工件的示例,它构build在我刚刚分享的Jenkins Slave Docker环境中:

 FROM tsl.devops.dotnetcore.base.image MAINTAINER Brian Ogden ############################################# # .NET Service setup ############################################# ARG ASPNETCORE_ENVIRONMENT WORKDIR /app COPY ./src/TSL.Bom.Service/bin/Debug/netcoreapp1.1/publish . ENV ASPNETCORE_URLS http://+:5001 ENV ASPNETCORE_ENVIRONMENT $ASPNETCORE_ENVIRONMENT EXPOSE 5001 ENTRYPOINT ["dotnet", "TSL.Bom.Service.dll"] #############################################