zoukankan      html  css  js  c++  java
  • net core jenkins 流水线发布

    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 
  • 相关阅读:
    布局重用 include merge ViewStub
    AS 常用插件 MD
    AS 2.0新功能 Instant Run
    AS .ignore插件 忽略文件
    AS Gradle构建工具与Android plugin插件【大全】
    如何开通www国际域名个人网站
    倒计时实现方案总结 Timer Handler
    AS 进行单元测试
    RxJava 设计理念 观察者模式 Observable lambdas MD
    retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
  • 原文地址:https://www.cnblogs.com/zxcnn/p/12091548.html
Copyright © 2011-2022 走看看