• 【.NET Core】Docker Jenkins ASP.NET Core自动化部署


    本文基于GitHub演示自动化部署,实际上你可以选择任意的Git托管环境。
    使用的模式:DooD(Docker-outside-of-Docker)。
    本文所有内容均开源

    链接

    欢迎关注我的GitHub:

    Jenkins安装

    启动基于dotnet的jenkins:

    docker run --name my-jenkins -P 
        -e TZ='Asia/Shanghai' 
        -v /var/run/docker.sock:/var/run/docker.sock 
        -v /var/jenkins_home:/var/jenkins_home 
        -d neverc/netcore-jenkins
    

    docker exec -it my-jenkins cat /var/jenkins_home/secrets/initialAdminPassword // 查看jenkins的初始化密码,当然你可以去掉docker exec -it my-jenkins

    安装的必选插件:Git GitHub Integration

    如果安装插件非常慢,可使用镜像:
    上海大学镜像

    GitHub

    配置Person AccessToken

    创建一个仓库

    建议根目录添加1个setup.sh,用于jenkins构建

    配置Jenkins

    1. 为了做到自动化部署,在Jenkins的系统设置中找到GitHub Servers模块,选择secret text添加AccessToken为认证方式
    2. 在创建的Jenkins任务中,配置触发器为GitHub hook trigger for GITScm polling
    3. 构建选择执行 shell:bash ./setup.sh

    可参考的内容

    Dockerfile

    FROM microsoft/aspnetcore
    WORKDIR /app
    ENV ASPNETCORE_URLS http://*:5000
    EXPOSE 5000
    COPY ./publish /app
    CMD ["dotnet", "jenkins-demo.dll"]
    

    执行shell

    echo 'start'
    
    # variables
    echo 'variables:'
    GITHASH=`git rev-parse --short HEAD`
    IMGNAME=netcore-demo
    CONTAINER=netcore-demo-web
    # publish
    echo 'publish:'
    rm -rf ./publish
    dotnet publish -o ./publish
    # image
    echo 'image:'
    docker build -t $IMGNAME:$GITHASH .
    docker tag $IMGNAME:$GITHASH $IMGNAME:latest
    docker rmi -f $(docker images -q -f dangling=true)
    # container
    echo 'container:'
    docker stop $CONTAINER || true && docker rm -f $CONTAINER || true
    docker run -d --name $CONTAINER $IMGNAME
    
    echo 'done!'
    
  • 相关阅读:
    二进制安装postgresql
    php mongodb扩展安装
    coinbase交易冻结时间
    linux服务器及工具常用命令
    PM2下使用 执行npm命令
    phpstorm安装PHP_CodeSniffer
    TP5 save遍历更新,过滤相邻重复字段,问题汇总
    mysqlbinlog 数据恢复
    设计模式之状态机模式
    关于c++中sleep_for函数的总结分析
  • 原文地址:https://www.cnblogs.com/neverc/p/8944732.html
Copyright © 2020-2023  润新知