Issue
It seems apparent that you can save some time doing .NET Core builds by setting Environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
. I am finding this is not the case on CentOS 7 and Debian Jessie Linux distros.
I have a Jenkins slave Docker image, used by Jenkins to build .NET Core services, my image tag is jenkins.slave.dotnet.image
.
The Jenkins Docker Plugin, uses jenkins.slave.dotnet.image
to spin up a slave container when a build is triggered. The Jenkins Docker Plugin has access to a Docker host where the jenkins.slave.dotnet.image
resides.
In the Dockerfile for my jenkins.slave.dotnet.image
I set environment vars like so:
ENV NUGET_XMLDOC_MODE skip
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE true
All works fine, except those environment variables are being ignored by dotnet
commands, see the output of a Jenkins build for a .NET Core service, you should not see the circled text in the image if environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
is being checked by dotnet
cmds:
Connecting (docker exec -it jenkins.slave.dotnet.container bash
) to a container that uses the jenkins.slave.dotnet.image
you can see that DOTNET_SKIP_FIRST_TIME_EXPERIENCE is correctly set to "true":
Output of dotnet --info:
Here is my Dockerfile for my Jenkins Slave Docker image (jenkins.slave.dotnet.image
) that my Jenkins master runs containers of to do .NET Core Builds (this is the environment that dotnet publish -c Debug -v m
is executed in):
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
#############################################
Here is an example of a .NET Core Micro Service build artifact that builds in the Jenkins Slave Docker environment I just shared above:
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"]
#############################################
Solution
Is replaced by DOTNET_NOLOGO
.
Here you can find more about dotnet
environment variables and here you can find the source code on Github.
Answered By - Ćukasz Kurzyniec