关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑)

关于Jenkins+Docker+ASP.NET Core自动化部署的问题,可以分为以下几个步骤:

1. 安装Jenkins和Docker

在CentOS7系统下,可以通过如下命令安装Jenkins和Docker:

# 安装Jenkins
sudo yum install -y java-1.8.0-openjdk
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install -y jenkins

# 安装Docker
sudo yum install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker

2. 建立ASP.NET Core项目

在本地,可以通过使用Visual Studio、Visual Studio Code或者dotnet CLI等方式建立ASP.NET Core项目。建立好项目之后,可以通过如下命令进行项目的构建,生成可执行文件:

dotnet publish -c Release

3. 编写Jenkins脚本

在Jenkins控制台中,新建一个Jenkins任务,并在任务的配置页面中选择源码管理器为git,配置好git仓库地址和分支。此外,需要在Jenkins的全局工具配置中,配置好dotnet CLI的路径。

在该任务中,可以编写一个Jenkins脚本pipeline,对ASP.NET Core项目进行构建、打包、部署操作。一个简单的pipeline示例如下所示:

pipeline {
  agent {
    docker { 
        image "microsoft/dotnet:2-sdk" 
        args "-v /var/run/docker.sock:/var/run/docker.sock" 
    }
  }
  stages {
    stage('prepare') {
      steps {
        sh "git clone https://github.com/user/project.git"
        sh "cd project && dotnet restore"
      }
    }
    stage('build') {
      steps {
        sh "cd project && dotnet publish -c Release -o ../publish"
      }
    }
    stage('deploy') {
      steps {
        sh "cd publish && docker build --tag myapp ."
        sh "docker run --publish 80:5000 --detach --name myapp myapp"
      }
    }
  }
}

该脚本pipeline分为三个阶段:

  1. 第一阶段,从git仓库中拉取代码,并进行dotnet restore操作。
  2. 第二阶段,进行项目的编译发布操作,生成可执行文件。
  3. 第三阶段,使用Docker打包可执行文件,并启动容器进行部署。

4. 示例说明

  1. 示例一:本地构建项目,并上传到Docker Hub,然后在容器中运行

在本地,使用如下命令构建项目:

dotnet publish -c Release

生成可执行文件后,使用Docker打包并上传到Docker Hub:

docker build -t myapp .
docker tag myapp yourname/myapp:latest
docker push yourname/myapp:latest

然后,在线上服务器上,使用如下命令启动容器:

docker run -p 80:5000 -d --name myapp yourname/myapp:latest
  1. 示例二:使用Jenkins进行自动化部署

在Jenkins的控制台中,新建一个任务,并在任务配置页中选择源码管理器为git,配置好git仓库地址和分支。然后,在任务的配置页面中,添加一个pipeline脚本,根据之前的示例脚本进行编写。最后,在任务的Build Now页面中,点击“执行”按钮,即可开始自动化部署。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Jenkins + Docker + ASP.NET Core自动化部署的问题(避免踩坑) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • ubuntu中swap(虚拟内存)设置方法

    以下是Ubuntu中Swap设置方法的完整攻略: 1. 检查系统是否存在swap 在终端中输入以下命令进行检查: sudo swapon –show 如果没有任何输出,则系统中没有启用Swap。如果有输出,则会显示Swap的位置和大小。 2. 检查可用硬盘空间 在终端中输入以下命令来检查可用硬盘空间: df -h 这将显示系统上所有挂载的文件系统以及它们的…

    Linux 2023年5月24日
    00
  • redhat linux 通过yum自动升级

    下面是针对 “redhat linux 通过 yum 自动升级” 的完整攻略,分为以下几个步骤: 1. 更新软件源 在进行自动升级之前,首先需要确保系统中的软件源是最新的。可以通过运行以下命令更新软件源: sudo yum update 2. 安装自动升级工具 在 redhat linux 上,可以使用 yum-cron 工具来实现自动升级。使用以下命令安装…

    Linux 2023年5月14日
    00
  • Linux中QQ软件的安装和配置

    当然可以,以下是“Linux中QQ软件的安装和配置”的完整攻略,希望能对你有所帮助。 安装Wine 在Linux系统中安装QQ需要安装Windows模拟器Wine,执行以下命令安装: sudo apt install wine 安装完成后可以通过以下命令查看Wine的版本信息: wine –version 下载QQ安装程序 有些不正经的第三方网站提供了QQ…

    Linux 2023年5月14日
    00
  • 将进程/服务/程序注册为Linux系统服务systemctl 管理(开机自启动)

    1. 常用命令 将程序注册为系统服务后,可通过 systemctl 和 service 系统命令启动,查看,停止程序,并可以将程序设置为开机自启动等等。 将程序注册为系统服务,需要编辑xxx.service文件,并将文件存储到 /usr/lib/systemd/system/ 目录下 2. 常用命令   命令格式:systemctl 动作 服务名,servi…

    Linux 2023年4月12日
    00
  • Linux中虚拟机宕机之后解决办法

    下面是详细的攻略: Linux中虚拟机宕机之后解决办法 前言 在使用Linux虚拟机的过程中,有可能因为各种原因导致虚拟机宕机,这时我们需要采取对应的措施来解决问题。 解决办法 前置条件 在进行下面的操作之前,请先检查虚拟机依赖的基础组件是否正常,例如硬件资源配置等。 方案一:重启虚拟机 如果虚拟机因为一些偶然情况崩溃了,我们可以采用最简单直接的方式——重启…

    Linux 2023年5月23日
    00
  • 【转载】Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解

    1清风揽月10人评论5006人阅读2017-06-21 15:48:43   博文说明【前言】:     本文将通过个人口吻介绍Linux字符集和系统语言设置,包括LANG,locale,LC_ALL,POSIX等命令及参数详解的相关知识,在目前时间点【2017年6月21号】下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交…

    Linux 2023年4月12日
    00
  • 无公网IP远也能远程开发调试 VMware虚拟机端口映射3步实现

    下面是关于“无公网IP远也能远程开发调试 VMware虚拟机端口映射3步实现”的详细攻略。 什么是端口映射 端口映射是指在NAT(网络地址转换)设备上建立内网地址和公网地址之间的端口对应关系,以便内网设备通过公网访问网络。在本文中,我们将通过端口映射来实现远程访问本地的VMware虚拟机。 为什么需要端口映射 由于大部分情况下仅有内网IP,很难便捷地进行远程…

    Linux 2023年5月24日
    00
  • 聊聊开关和CPU之间故事

    目录 开关 电报和继电器 门电路 材料学的发展 继电器与哈佛Mark1号 真空管与巨人一号 晶体管与IBM608 计算机2大特性:计算能力和记忆能力 作者:小牛呼噜噜 | https://xiaoniuhululu.github.io 大家好,我是呼噜噜,在先前的一篇文章计算机中数值和字符串怎么用二进制表示?中,我们知道了计算机为什么会采用 0 和 1 组成…

    Linux 2023年4月28日
    00
合作推广
合作推广
分享本页
返回顶部