首页 > Web开发 > 详细

net core jenkins 流水线发布

时间:2019-12-24 16:04:35      阅读:112      评论:0      收藏:0      [点我收藏+]

dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS base
#注意.和/之间有空格,表示把主机当前目录内容拷贝到镜像的/publish目录
RUN ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so

#开始安装系统必备组件
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak &&     echo "deb http://mirrors.163.com/debian/ stretch main non-free contrib" >/etc/apt/sources.list &&     echo "deb http://mirrors.163.com/debian/ stretch-proposed-updates main non-free contrib" >>/etc/apt/sources.list &&     echo "deb-src http://mirrors.163.com/debian/ stretch main non-free contrib" >>/etc/apt/sources.list &&     echo "deb-src http://mirrors.163.com/debian/ stretch-proposed-updates main non-free contrib" >>/etc/apt/sources.list

RUN apt-get update
RUN apt-get install libfontconfig1 -y
RUN apt-get install libgdiplus -y && ln -s libgdiplus.so gdiplus.dll

FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build

WORKDIR /src
#COPY . .
COPY ./JenkinsNetCoreDemo .
#RUN dotnet restore --configfile nuget.config JenkinsNetCoreDemo.sln --no-cache &&     #dotnet build --no-restore -c Release JenkinsNetCoreDemo.sln
RUN dotnet restore JenkinsNetCoreDemo.sln --no-cache &&     dotnet build --no-restore -c Release JenkinsNetCoreDemo.sln

FROM build AS publish
WORKDIR /src
RUN dotnet publish --no-restore -c Release -o /app

FROM base AS final
ARG env
#run echo $env
#COPY . /app
WORKDIR /app
ENV ASPNETCORE_ENVIRONMENT=$env
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo Asia/Shanghai >/etc/timezone
#VOLUME /app
COPY --from=publish /app .
 
ENTRYPOINT ["dotnet", "JenkinsNetCoreDemo.dll"]

技术分享图片

 

 

 技术分享图片

 

 

 技术分享图片

 

 

 

node{
    stage(git下载){
        checkout([$class: GitSCM, branches: [[name: */master]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: d77e88dc-f571-4a1f-a5d0-d84a00a89668, url: https://github.com/zx972243884/JenkinsNetCoreDemo.git]]])
    }


    stage(构建){
        sh label: ‘‘, script: ‘‘‘ 
            docker build -t 192.168.160.130/library/jenkinsnetcoredemo -f ./JenkinsNetCoreDemo/JenkinsNetCoreDemo/Dockerfile .
        ‘‘‘
    }

    stage(上传到仓库){
        sh label: ‘‘, script: ‘‘‘ 
            docker push 192.168.160.130/library/jenkinsnetcoredemo
            docker rmi 192.168.160.130/library/jenkinsnetcoredemo
        ‘‘‘
    }   
    
    stage(部署){
        sh label: ‘‘, script:  ‘‘‘ 
            docker stop jenkinsnetcoredemo&&docker rm jenkinsnetcoredemo
            docker pull 192.168.160.130/library/jenkinsnetcoredemo
            docker run -d --name jenkinsnetcoredemo -p 9021:80 -v /etc/timezone:/etc/timezone --env ASPNETCORE_ENVIRONMENT=Development 192.168.160.130/library/jenkinsnetcoredemo:latest
        ‘‘‘
    }
}

 docker run -d --name jenkinsnetcoredemo -p 9021:80 -v /etc/timezone:/etc/timezone --env ASPNETCORE_ENVIRONMENT=Development --add-host xxx.xxxx.com:192.168.1.5 192.168.160.130/library/jenkinsnetcoredemo:latest

技术分享图片

 

 

jenkinsnetcoredemo 

net core jenkins 流水线发布

原文:https://www.cnblogs.com/zxcnn/p/12091548.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!