通过设置环境变量DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
似乎apparent that you can save some time doing .NET Core builds。我发现在CentOS 7和Debian Jessie Linux发行版上并非如此。
我有一个Jenkins奴隶Docker镜像,由Jenkins用来构建.NET Core服务,我的图片标签是jenkins.slave.dotnet.image
。
Jenkins Docker插件在触发构建时使用jenkins.slave.dotnet.image
来启动从属容器。 Jenkins Docker插件可以访问jenkins.slave.dotnet.image
所在的Docker主机。
在我的jenkins.slave.dotnet.image
的Dockerfile中,我设置了环境变量,如下所示:
ENV NUGET_XMLDOC_MODE skip
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE true
一切正常,除了dotnet
命令忽略了那些环境变量,看到.NET Core服务的Jenkins构建的输出,如果环境变量{你不应该在图像中看到带圆圈的文本{ DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
cmds正在检查{1}}
将(dotnet
)连接到使用docker exec -it jenkins.slave.dotnet.container bash
的容器,您可以看到DOTNET_SKIP_FIRST_TIME_EXPERIENCE已正确设置为" true":
dotnet输出--info:
这是我的Jenkins Slave Docker映像(jenkins.slave.dotnet.image
)的Dockerfile,我的Jenkins master运行容器来执行.NET Core Builds(这是jenkins.slave.dotnet.image
执行的环境):
dotnet publish -c Debug -v m
以下是我刚刚在上面分享的Jenkins Slave Docker环境中构建的.NET Core Micro Service构建工件的示例:
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
#############################################