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)