• ASP.NET.Core --Jenkins+Docker


    ps:开发环境是AspNet.Core3.1 WebApi项目, 服务器环境是centos7,gitblit。

    思路:1、centos服务器搭建jenkins。

       2、centos服务器安装dotnetcore 3.1的SDK。

       3、centos服务器安装docker环境。

            4、编写DockreFile文件,通过docker命令构建镜像,通过镜像构建容器。

       5、在jenkins的workspace目录下,通过命令发布netcore api项目,到数据卷/home/app/publish(共享文件夹)下。

            6、jenkins配置shell脚本实现发布代码到/home/app/publish(共享文件夹),重启容器。

    1、搭建jenkins

            1.1 先安装java jdk 下载命令如下

    wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

             1.2 授权限

    chmod +x jdk-8u131-linux-x64.rpm

      1.3 安装

    rpm -ivh jdk-8u131-linux-x64.rpm

           1.4 下载jenkins的war包 上传到服务器上

    http://mirrors.jenkins-ci.org/war/

           1.5 在linux jenkins.war的目录下 后台启动jenkins网站

    nohup java -jar jenkins.war --httpPort=8081 &

           1.6 查看jenkins 后台进程

    ps -ef | grep jenkins

    2、安装dotnetcore SDK

           ps: 如果网络不好,需切换到微软 yum源,然后yum update

      2.1 下载dontnetcore 3.1 sdk

    yum install dotnet-sdk-3.1

    3、安装docker环境

      3.1 下载docker-ce的repo

    sudo curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

      3.2 安装依赖

    sudo yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.13-3.2.fc30.x86_64.rpm

      3.3 安装docker-ce

    sudo yum install docker-ce

       3.4 启动docker

    sudo systemctl start docker

    4、编写dockerfile 构建镜像

      4.1 编写dockerfile文件

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS build
    
    FROM build AS publish
    
    RUN dotnet publish "MyAPI.csproj" -c Release -o /app/publish
      
    WORKDIR /app
    
    EXPOSE 5000/tcp
    #解决服务器SSL协议版本问题
    RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf

      4.2 上传dockerfile到 /home/app/publish 目录下,构建镜像(注意后面有一个点)

    docker build -t myimage -f Dockerfile .

    5、发布netcore api项目到数据卷(第一次手动发布,后续使用jenkins shell控制,重启容器即可)

      5.1  cd到jenkins的工作目录(一般在【/root/.jenkins/workspace/项目名称/ 】 下) 发布到 app/publish 目录

      dotnet publish "MyAPI.csproj" -c Release -o /app/publish

      6.2 创建容器,数据卷的方式,对外开放8080 端口号,现在就可以测试是否部署成功

    【docker run -d --name 容器名 -v 本地文件夹绝对路径:/app -p 8080:80   镜像名    dotnet  项目.dll  --urls http://*:80】
    例:
    【docker run -d --name apicontainer -v /home/app/publish/:/app -p 8080:80 【镜像Id】 dotnet  MyAPI.dll  --urls http://*:80】

     

    6、jenkins shell脚本

         6.1  控制发布程序到数据卷,重启容器 

    #!/bin/bash
    echo----------------找到MyApi的发布目录--------
    cd MyAPI
    
    echo----------------开始发布程序--------
    
    dotnet publish "MyAPI.csproj" -c Release -o /home/app/publish
    
    echo----------------重启docker容器-----
    docker restart apicontainer
  • 相关阅读:
    Asm Instance Parameter Best Practice
    Real Application Testing Database Replay、SPA的价格和介绍
    11g OCM Upgrade Exam Tips
    如何在文本框输入框里按回车键,光标自动跳转到下一个文本框输入框或者是执行某按钮的提交?
    asp.net textbox回车变成按扭事件
    图片判断你的左脑发达还是右脑发达 (转)
    关于Oracle数据和对象的导入导出 [转]
    ajax web.config配置与发布
    批处理复制最新的文件夹里面的bmp文件到指定目录
    C#调用存储过程返回值
  • 原文地址:https://www.cnblogs.com/lwqstyle/p/14125256.html
Copyright © 2020-2023  润新知