.Net Core忽略环境变量DOTNET_SKIP_FIRST_TIME_EXPERIENCE

Bri*_*den 6 .net c# linux jenkins .net-core

显然,通过设置环境变量可以节省一些进行 .NET Core 构建的时间DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true。我发现 CentOS 7 和 Debian Jessie Linux 发行版上并非如此。

我有一个 Jenkins 从 Docker 镜像,Jenkins 使用它来构建 .NET Core 服务,我的镜像标签是jenkins.slave.dotnet.image.

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

在我的 Dockerfile 中,jenkins.slave.dotnet.image我设置环境变量,如下所示:

ENV NUGET_XMLDOC_MODE skip
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE true
Run Code Online (Sandbox Code Playgroud)

一切正常,除了这些环境变量被dotnet命令忽略之外,请参阅 .NET Core 服务的 Jenkins 构建的输出,如果cmdDOTNET_SKIP_FIRST_TIME_EXPERIENCE=true检查环境变量,您不应该在图像中看到带圆圈的文本dotnet

在此输入图像描述

连接 ( 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) 的 Dockerfile,我的 Jenkins master 运行容器来执行 .NET Core 构建(这是在 中执行的环境dotnet publish -c Debug -v m):

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
#############################################
Run Code Online (Sandbox Code Playgroud)

以下是在我上面刚刚分享的 Jenkins Slave Docker 环境中构建的 .NET Core 微服务构建工件的示例:

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"]
#############################################
Run Code Online (Sandbox Code Playgroud)

Łuk*_*iec 11

被替换为DOTNET_NOLOGO.

在这里您可以找到有关dotnet环境变量的更多信息,这里是 Github 上的 dotnet CLI 源代码。